【问题标题】:how to get textbox value on button click in nested gridview如何在嵌套gridview中单击按钮时获取文本框值
【发布时间】:2018-03-01 09:36:09
【问题描述】:

如何在嵌套网格视图中单击按钮获取文本框值

<asp:GridView ID="GridView2" runat="server">

                   <Columns>
                        <asp:TemplateField>
                            <ItemTemplate>

                                    <asp:ImageButton ID="ImageButton1" runat="server"  OnClick="Show_Hide_ChildGrid" ImageUrl="~/images/plus.png" CommandArgument="Show" Height="20" Width="20" />

                                 <asp:Panel ID="pnlOrders" runat="server" Style="display: none;">

                                    <asp:GridView ID="gvOrders" runat="server" OnRowCommand="gvOrders_RowCommand">
                                        <Columns>


                                            <asp:TemplateField HeaderText="volNo">
                                                <ItemTemplate>
                                                    <asp:TextBox Width="90px" ID="txtVolume" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"Volume") %>'></asp:TextBox>
                                                </ItemTemplate>
                                                <HeaderStyle Width="91px" />
                                            </asp:TemplateField>

                                           <asp:ButtonField ButtonType="Button" CommandName="Save" Text="Save" HeaderText="Save">
                                                 <HeaderStyle Width="50px" />
                                            </asp:ButtonField>

                                        </Columns>


                                    </asp:GridView>

                                </asp:Panel>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:BoundField DataField="JournalName" HeaderText="JournalName" ></asp:BoundField>

                    </Columns>

                </asp:GridView>

我无法从子网格视图中获取文本框值。 它显示 this(gridview id) 在当前上下文中不存在的错误。 它在父gridview中工作正常。当我尝试使用父 gridview 那么它的工作正常,意味着代码是正确的。我做的方式。可能是磨损了 所以请检查。设计部分和 .cs 部分都已发布。我还提到了哪里出错了

 protected void gvOrders_RowCommand(object sender, GridViewCommandEventArgs e)
    {



        if (e.CommandName == "Save")
        {
                int rowIndex = Convert.ToInt32(e.CommandArgument);
                **GridViewRow row = gvOrders.Rows[rowIndex];** // Here i am getting error that gvOrders does not exit in the current context

                //GridView GVCollapse = (GridView)sender;  //find nested grid view
                //GridViewRow row = (GridViewRow)GVCollapse.Parent.Parent;

                //Fetch value of Name.
                string Journal = (row.FindControl("txtJournalName") as TextBox).Text;
                string Volume = (row.FindControl("txtVolume") as TextBox).Text;
                string Issues = (row.FindControl("txtIssues") as TextBox).Text;
                string DispatchDate = (row1.FindControl("txtDispatchDate") as TextBox).Text;
                string Remarks = (row.FindControl("txtRemarks") as TextBox).Text;



                ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Name: " + Journal + "\\nCountry: " + Volume + "\\nDate: " + DispatchDate + "');", true);



        }
    }

【问题讨论】:

    标签: c# asp.net .net gridview model-view-controller


    【解决方案1】:

    将 ButtonField 替换为 Button:

    <asp:TemplateField HeaderText="Save">
        <ItemTemplate>
            <asp:Button ID="btnSave" CommandName="Save" runat="server" Text="Save" />
        </ItemTemplate>
    </asp:TemplateField>
    

    在 RowCommand 事件中尝试一下:

    if (e.CommandName == "Save")
    {
        GridViewRow row = (GridViewRow)(((Button)e.CommandSource).NamingContainer);
        GridView gv = (GridView)row.FindControl("gvOrders");
    
        string Journal = (row.FindControl("txtJournalName") as TextBox).Text;
        //... some other code
    }    
    

    【讨论】:

    • 其实我也想知道 Ajax-calendar 是否可以在子 gridview 文本框中工作???因为我遇到了问题。
    • 是的,它会起作用,您可以发布一个单独的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多