如何将网格视图值传输到下一页

时间:2015-03-20 06:51:30

标签: c# asp.net gridview

如何将网格视图值传输到下一页。网格视图包含一个文本框(txtItemGroup),其中的值必须由用户动态输入,而不是从数据库输入。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" HorizontalAlign="Center">
            <Columns>
                <asp:TemplateField HeaderText="Item Name">
                    <ItemTemplate>
                        <asp:Label ID="lblName" runat="server" Text='<%# Eval("TestItemName") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Items Group">
                    <ItemTemplate>
                        <asp:Label ID="lblGroup" runat="server" Text='<%# Eval("TestItemGroup") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Group">
                    <ItemTemplate>
                        <asp:TextBox ID="txtItemGroup" runat="server"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Item Values">
                    <ItemTemplate>
                        <asp:Label ID="lblItemValue" runat="server" Text='<%# Eval("TestItemValues") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Default Values">
                    <ItemTemplate>
                        <asp:Label ID="lblDefaultValues" runat="server" Text='<%# Eval("DefaultValues") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

2 个答案:

答案 0 :(得分:0)

在GridView的RowCommand事件中输入以下代码:

if (e.CommandName == "Send")
{
    TextBox txt = (TextBox)GridView1.FindControls("txtItemGroup");
    Session["ItemGroup"] = txt.Text;    
}

除此之外,在GridView的ItemTemplate中放置一个Button或LinkBut​​ton,以便在放置TextBox并在.aspx页面中将其设置为CommandName属性时发送相应Textbox的值:

<asp:Button id="btnSend" runat="server" Text = ">" commandName="Send"/>

然后在页面的Page_Load事件中,您希望查看TextBox的值:

if (!IsPostback)
{
    Label1.Text = Session["ItemGroup"].ToString();
    //or
    Label1.Text = (String)Session["ItemGroup"];
}

答案 1 :(得分:0)

试试这个: -

在该文本框下方添加一个按钮,如下所示: -

<asp:Button ID="btnsend" Text="Send" runat="server" CommandName="Send" />

在RowCommand事件中写如下: -

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "Send")
        {
            GridViewRow row = (GridViewRow)((Control)e.CommandSource).NamingContainer;
            TextBox TextBox1 = row.FindControl("txtItemGroup") as TextBox;
            Response.Redirect("yourasppage.aspx?txt=" + TextBox1.Text);
        }
    }

在`yourasppage.aspx&#39;的页面加载使用此代码

string txtval = Request.QueryString["txt"];

希望这会有所帮助