【发布时间】: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