我一直坚持这个问题几个小时,似乎无法搞清楚。我有一个gridview我从一个SQL数据源填充taht给我这个表:
我想添加一个自定义下拉列表,其中包含数字1,5,7,以按最小动物数量过滤此数据。下面是下拉代码。
Minimum Animals:
<asp:DropDownList ID="ddlMinimumAnimals" runat="server"
AutoPostBack = "True" AppendDataBoundItems = "True">
<asp:ListItem Text = "1" Value = "1"></asp:ListItem>
<asp:ListItem Text = "5" Value = "1"></asp:ListItem>
<asp:ListItem Text = "7" Value = "1"></asp:ListItem>
</asp:DropDownList>
我只想在单击下拉列表时将表格过滤到最小,我找到的所有教程都不使用存储过程,所以我不确定如何绑定数据。
Gridview代码:
<asp:GridView ID="GridView2" class="grids" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource2" AllowSorting="True" AllowPaging="True">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:BoundField DataField="Animals" HeaderText="Animals" SortExpression="animals" />
<asp:BoundField DataField="Company" HeaderText="Company" SortExpression="company" />
</Columns>
</asp:GridView>
答案 0 :(得分:0)
无法确定是否要将自定义下拉列表添加到网格或包含网格的表单中。您可以在数据适配器上创建自定义填充,但如果是我,我会将数据转储到数据表,并根据下拉列表运行linq查询以获取所需的值,或者我使用了DataView并在过滤后将数据转储回原始表中。祝你好运。
答案 1 :(得分:0)
您需要编写一些代码来修改数据源并将两个控件挂钩在一起。它来自存储过程这一事实没有任何区别。
控制:
<asp:DropDownList ID="ddlMinimumAnimals" runat="server" AutoPostBack = "True">
<asp:ListItem Text = "1" Value = "1"></asp:ListItem>
<asp:ListItem Text = "5" Value = "1"></asp:ListItem>
<asp:ListItem Text = "7" Value = "1"></asp:ListItem>
</asp:DropDownList>
<asp:GridView ID="GridView2" class="grids" runat="server" AutoGenerateColumns="False" AllowSorting="True" AllowPaging="True">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:BoundField DataField="Animals" HeaderText="Animals" SortExpression="animals" />
<asp:BoundField DataField="Company" HeaderText="Company" SortExpression="company" />
</Columns>
</asp:GridView>
基本代码(在代码隐藏或服务器脚本标记中):
'Im assuming your going to run this on every page load'
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Page.IsPostBack() Then
'use this number to limit your query via SQL-TOP-Clause or Limit or whatever'
Dim minAnimals As Integer = CInt(ddlMinimumAnimals.SelectedValue)
'get your data here ... lets assume you call it "yourData"'
' then bind your data to the gridview.'
GridView2.DataSource = yourData
GridView.DataBind()
End If
End Sub