c# - 如何将多个选定的 Datagrid 值传递到 asp.net 中的另一个页面?

标签 c# asp.net vb.net datagrid

我有多个 asp.net 数据网格,用户可以选择一个复选框到他们想要的相应值,在文本框中输入他们想要的数量并提交请求。我如何在下一页显示他们要求的金额值?我相信我可以通过一个 session 来做到这一点,但我很难为这样的事情找到好的例子。因为他们可以选择多个值,所以我不能使用查询字符串吧?我正在使用 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 值。

关于c# - 如何将多个选定的 Datagrid 值传递到 asp.net 中的另一个页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18859677/

相关文章:

c# - System.IO.FileSystemWatcher.CompletionStatusChanged 处的 System.ArgumentOutOfRangeException

asp.net - JQuery BlockUI 与 UpdatePanel View 状态问题

c# - 无窗口 Winforms 应用程序上的关闭事件

.net - 验证 WCF 服务

vb.net - 事件处理程序是异步处理的吗?

c# - config.DataServiceBehavior.MaxProtocolVersion 从 V3.0 到 V2.0 的更改无法恢复

c# - 动态修改DataGrid列

asp.net - 设置gridview的页数

c# - 从 Canvas 保存的图像未正确呈现

c# - 从 ASP.NET 应用程序获取 Box API 的访问 token ?