【问题标题】:How do I Pass Multiple Selected Datagrid Values to Another Page in asp.net?如何将多个选定的 Datagrid 值传递到 asp.net 中的另一个页面?
【发布时间】:2013-09-22 11:19:21
【问题描述】:

我有多个 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>

【问题讨论】:

    标签: c# asp.net vb.net datagrid


    【解决方案1】:

    您可以使用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 值。

    【讨论】:

      猜你喜欢
      • 2013-05-22
      • 1970-01-01
      • 1970-01-01
      • 2015-04-04
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2021-02-20
      • 1970-01-01
      相关资源
      最近更新 更多