找到控件不工作gridview

时间:2017-07-12 03:08:23

标签: asp.net gridview aspxgridview

我有一个包含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

我刚检查了它的查找文本框值而不是任何特定原因的标签?

3 个答案:

答案 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);

希望有所帮助