如何使用SqlDataSource ...在GridView中传递多个参数? [英] How to pass more than one parameter in the GridView using SqlDataSource...?
本文介绍了如何使用SqlDataSource ...在GridView中传递多个参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用SqlDataSource ...在GridView中传递多个参数(多重条件)?
当我grid_rowcreated我得到错误.我只会传递一个参数.
ASPX代码
错误:部门既不是表的DataColumn也不是DataRelation."
----------
Hi,
How to pass more than one parameter (Multiple condition) in the GridView using SqlDataSource...?
I am getting error when i grid_rowcreated. I will pass only one parameter..
ASPX Code
ERROR : "dept is neither a DataColumn nor a DataRelation for table ."
----------
<asp:SqlDataSource ID="sqlDSMen" runat="server" ConnectionString="<%$ ConnectionStrings:Test %>"
Select emp_no,emp_name+' '+emp_initial as name,designation,dept
from employee_details where dept=@dept and designation=@designation
order by emp_name
<SelectParameters>
<asp:Parameter Name="dept" Type="Int32" DefaultValue="0" />
<asp:Parameter Name="designation" Type="String" DefaultValue="" />
</SelectParameters>
<asp:GridView AutoGenerateColumns="false" CssClass="grid" ID="gvMen" DataSourceID="sqlDSMen" runat="server" ShowHeader="true" EnableViewState="false">
<rowstyle cssclass="row" />
<alternatingrowstyle backcolor="#F5ECFF" />
<columns>
<asp:TemplateField HeaderText="Sl.No" ItemStyle-CssClass="rownum">
<itemtemplate>
<%# Container.DataItemIndex + 1%>
</itemtemplate>
<asp:BoundField HeaderText="Name" DataField="name" ItemStyle-Width="180px" />
<asp:BoundField HeaderText="Designation" DataField="designation"
ItemStyle-Width="280px" />
</columns>
ASPX.VB代码
------------
ASPX.VB Code
------------
Protected Sub gvMen_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvEngineers.RowCreated
If e.Row.RowType = DataControlRowType.DataRow Then
Dim ctrl As SqlDataSource = TryCast(e.Row.FindControl("sqlDsMen"), SqlDataSource)
If ctrl IsNot Nothing AndAlso e.Row.DataItem IsNot Nothing Then
ctrl.SelectParameters("emp_dept").DefaultValue = DirectCast(e.Row.DataItem, DataRowView)("dept").ToString()
ctrl.SelectParameters("").DefaultValue = DirectCast(e.Row.DataItem, DataRowView)("designation").ToString()
End If
End If
End Sub
推荐答案
ConnectionStrings:Test%>" 选择 emp_no,emp_name +' '+ emp_initial 名称,名称,部门 来自 employee_details 其中 dept = @ dept 并且 名称 = @名称 顺序 by emp_name < SelectParameters > < asp:Parameter 名称 =" 类型 Int32 " =" > < asp:Parameter 名称 =" 类型 字符串" DefaultValue " / < /SelectParameters > < asp:GridView AutoGenerateColumns =" CssClass 网格" ID gvMen" DataSourceID sqlDSMen" runat =" ShowHeader =" true" EnableViewState =" > < 行 样式 cssclass =" 行" / > 跨度> < alternatingrow 样式 背景色 =" #F5ECFF" / < 列 > < asp:TemplateField HeaderText =" ItemStyle-CssClass =" < itemtemplate > <%#Container.DataItemIndex + 1 %> < /itemtemplate > < asp:BoundField HeaderText =" DataField 名称" ItemStyle-Width 180px" / > < asp:BoundField HeaderText =" DataField 名称" = " / > < /列 >
ConnectionStrings:Test %>" Select emp_no,emp_name+' '+emp_initial as name,designation,dept from employee_details where dept=@dept and designation=@designation order by emp_name <SelectParameters> <asp:Parameter Name="dept" Type="Int32" DefaultValue="0" /> <asp:Parameter Name="designation" Type="String" DefaultValue="" /> </SelectParameters> <asp:GridView AutoGenerateColumns="false" CssClass="grid" ID="gvMen" DataSourceID="sqlDSMen" runat="server" ShowHeader="true" EnableViewState="false"> <rowstyle cssclass="row" /> <alternatingrowstyle backcolor="#F5ECFF" /> <columns> <asp:TemplateField HeaderText="Sl.No" ItemStyle-CssClass="rownum"> <itemtemplate> <%# Container.DataItemIndex + 1%> </itemtemplate> <asp:BoundField HeaderText="Name" DataField="name" ItemStyle-Width="180px" /> <asp:BoundField HeaderText="Designation" DataField="designation" ItemStyle-Width="280px" /> </columns>
ASPX.VB代码
------------
ASPX.VB Code
------------
Protected Sub gvMen_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvEngineers.RowCreated
If e.Row.RowType = DataControlRowType.DataRow Then
Dim ctrl As SqlDataSource = TryCast(e.Row.FindControl("sqlDsMen"), SqlDataSource)
If ctrl IsNot Nothing AndAlso e.Row.DataItem IsNot Nothing Then
ctrl.SelectParameters("emp_dept").DefaultValue = DirectCast(e.Row.DataItem, DataRowView)("dept").ToString()
ctrl.SelectParameters("").DefaultValue = DirectCast(e.Row.DataItem, DataRowView)("designation").ToString()
End If
End If
End Sub
http://msdn.microsoft.com /en-us/library/z72eefad.aspx [ ^ ]
经历一下
希望对您有帮助.
http://msdn.microsoft.com/en-us/library/z72eefad.aspx[^]
Go through it
hope it will help you.
这篇关于如何使用SqlDataSource ...在GridView中传递多个参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文