Как получить значения из GridView в строке нижнего колонтитула в ASP.NET
Я использую элемент управления gridview и имею текстовое поле в нижнем колонтитуле мне нужно добавить это значение текстового поля в таблицу по щелчку кнопки Добавить
я использую
TextBox txtRoleName = gvRoleDtls.FooterRow.FindControl("txtRoleName") as TextBox;но значение в текстовом поле пустое
пожалуйста, помогите мне
Что я уже пробовал:
<asp:GridView runat="server" ID="gvRoleDtls" AutoGenerateColumns="false" Width="80%" ShowFooter="true" OnRowCommand="gvRoleDtls_RowCommand"> <Columns> <asp:TemplateField HeaderText="Sr.No."> <ItemTemplate><%# Container.DataItemIndex + 1 %></ItemTemplate> <ItemStyle Width="5%" HorizontalAlign="Center" VerticalAlign="Middle" /> </asp:TemplateField> <asp:TemplateField HeaderText="RoleId" HeaderStyle-CssClass="hidecolumn" ItemStyle-CssClass="hidecolumn"> <HeaderStyle CssClass="hidecolumn" /> <ItemTemplate> <asp:Label runat="server" ID="RoleId" Text='<%#Eval("RoleId")%>' CssClass="hidecolumn"></asp:Label> </ItemTemplate> <FooterStyle CssClass="hidecolumn"/> </asp:TemplateField> <asp:TemplateField HeaderText="Name"> <ItemTemplate> <asp:Label runat="server" ID ="lblRoleName" Text='<%#Eval("RoleName") %>'></asp:Label> </ItemTemplate> <ItemStyle Width="60%" HorizontalAlign="Left" VerticalAlign="Middle" /> <FooterTemplate> <asp:TextBox ID="txtRoleName" runat="server" ></asp:TextBox> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Active"> <ItemTemplate> <asp:Label runat="server" ID ="lblActive" Text='<%#Eval("Active") %>'></asp:Label> </ItemTemplate> <ItemStyle Width="25%" HorizontalAlign="Center" VerticalAlign="Middle" /> </asp:TemplateField> <asp:TemplateField HeaderText="Added On"> <ItemTemplate> <asp:Label runat="server" ID ="lblAddedOn" Text='<%#Eval("AddedOn") %>'></asp:Label> </ItemTemplate> <ItemStyle Width="25%" HorizontalAlign="Center" VerticalAlign="Middle" /> </asp:TemplateField> <asp:TemplateField HeaderText="Action"> <ItemTemplate> <asp:ImageButton ID="Edit" runat="server" AlternateText="Edit" /> <asp:ImageButton ID="Delete" runat="server" AlternateText="Delete"/> </ItemTemplate> <ItemStyle Width="10%" HorizontalAlign="Center" VerticalAlign="Middle" /> <FooterTemplate> <asp:LinkButton ID="lnkbtnAdd" runat="server" CommandName="ADD_NEW_ROW">Add</asp:LinkButton> </FooterTemplate> </asp:TemplateField> </Columns> </asp:GridView>
код aspx
protected void gvRoleDtls_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName.ToUpper().Equals("ADD_NEW_ROW")) { int i = 0; TextBox txtRoleName = gvRoleDtls.FooterRow.FindControl("txtRoleName") as TextBox; i = objRole.AddUpdateRole(0, txtRoleName.Text, "I", 1); if (i == 0) { string s = MessageRepository.MESSAGE_DATA_SAVED; ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "SymbolError", "<script type='text/javascript'>alert(' " + s + "');</script>", false); BindGrid(); } } }
Graeme_Grant
Чтобы отправить обратно значение, которое вы пытаетесь сделать, вам нужно иметь его в форме. С ASP.NET WebForms, я считаю, что только 1 форма может существовать на любой странице; MVC отличается и может иметь несколько форм.
Member 12966735
извините но я не понимаю вас не могли бы вы объяснить на каком нибудь примере
я использую content place holder здесь
Richard Deeming
Возможно, Вам повезет больше, если вы воспользуетесь ListView
контроль. Это немного больше работы по настройке, но у него есть встроенная поддержка отображения элемента "вставка".
Системы.Веб.Пользовательского интерфейса.WebControls.элемент управления ListView[^]
Обзор Управления Веб-Сервером ListView[^]