我有一个包含gridview和按钮的页面现在我想在我点击按钮时将gridview值添加到数据库表,但是当我点击按钮并尝试使用find控件获取值时它没有显示任何值它显示了值空白。 我的代码在下面给出
aspx page
<%@ Page Title="" Language="C#" MasterPageFile="Masters.Master" AutoEventWireup="true" EnableEventValidation ="false" CodeBehind="test.aspx.cs" Inherits="test" UICulture="hi-IN" Culture="hi-IN" %>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnDataBound="GridView1_DataBound"
OnRowDataBound="GridView1_RowDataBound" BackColor="White" BorderColor="White"
BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black" GridLines="Vertical">
<asp:TemplateField Visible="true">
<HeaderTemplate>
<asp:Label ID="lbl4" runat="server" Text="test."></asp:Label>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lbltestno" runat="server" Text='<%# Bind("testing") %>' Visible="true"></asp:Label><br style="mso-data-placement:same-cell;"/>
</ItemTemplate>
</asp:TemplateField>
.cs page
on button click
foreach (GridViewRow GvRow in GridView1.Rows)
{
Label lblvinnos = (Label)GvRow.FindControl("lbltestno");
}
请注意,当我在没有母版页的情况下使用时,此页面正常工作但是当我使用母版页时,它显示查找控件值为null
我刚检查了它的查找文本框值而不是任何特定原因的标签?
答案 0 :(得分:0)
你必须在单元格中找到它,cell_index
是控制所在的单元格的实际索引(以0开头)。
Label lblvinnos = (Label)GvRow.Cells[cell_index].FindControl("lbltestno");
答案 1 :(得分:0)
尝试按钮cliked事件,如:
int indexcount = 0;
foreach (GridViewRow row in GridView1.Rows)
{
// get value from label on each row in gridview
string value = (GridView1.Rows[indexcount].FindControl("lbltestno") as Label).Text;
indexcount++;
}
答案 2 :(得分:0)
在模板字段中创建按钮
在gridview_rowcommand方法中触发它
仅适用于每一行
GridViewRow row = (GridViewRow)(((ImageButton)e.CommandSource).NamingContainer);
string your_variable = Convert.ToDecimal(((TextBox)row.FindControl("your control here")).Text);
希望有所帮助