如何将多个选定的数据网格值传递到 asp.net 中的另一个页面
本文关键字:asp net 另一个 值传 数据网 数据 网格 | 更新日期: 2023-09-27 18:31:46
我有多个 asp.net 数据网格,用户可以选中一个复选框到他们想要的相应值,在文本框中输入他们想要的数量并提交请求。如何在下一页上显示他们请求的金额值?我相信我可以通过一个会话来做到这一点,但我很难找到这样的事情的好例子。由于他们可以选择多个值,所以我不能使用查询字符串,对吗?我正在使用 VB.net 但如果你用 c# 回答,那很好。谢谢!
<asp:GridView ID="flexGridView" DataKeyNames="ID" runat="server" AutoGenerateColumns="False" DataSourceID="FormSqlDataSource" CssClass="gridView" ClientIDMode="Static">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="flexCheckBoxList" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Form" ShowHeader="False" />
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID" Visible="False" />
<asp:BoundField DataField="Category" HeaderText="Category" SortExpression="Category" ShowHeader="False" Visible="False" />
<asp:TemplateField Visible="false">
<ItemTemplate>
<asp:Label ID="lblEmail" runat="server" Text='<%# Eval("Email")%>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Qty" >
<ItemTemplate>
<asp:TextBox ID="flexTextBox" runat="server" Width="40" ></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
您可以使用
Session
或查询字符串,但我建议Session
,因为查询字符串的长度有限制,特别是如果您不确定可以选中多少复选框。
使用复选框控件的OnCheckChanged
事件,并在模板字段中将AutoPostBack
设置为 true,如下所示:
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="flexCheckBoxList" runat="server"
AutoPostBack="True" OnCheckedChanged="Check_Clicked" />
</ItemTemplate>
</asp:TemplateField>
protected void Check_Clicked(Object sender, EventArgs e)
{
// Store the check box name, ID or whatever unique value you want in Session here
CheckBox theCheckBox = sender as CheckBox;
// Was the check box found?
if(theCheckBox != null)
{
// Store in Session
Session["CheckBoxValue"] = theCheckBox.SomePropertyValue;
}
}
然后在重定向页面的Page_Load
,您需要读出选中复选框的Session
值。