asp.net 在gridview中从空数据模板查找控件

a0zr77ik  于 2023-02-06  发布在  .NET
关注(0)|答案(3)|浏览(127)

我正在使用EmptyDataTemplate在网格中输入新数据,而网格中没有现有数据,但我无法在EmptyDateTemplate中找到我的控件

protected void gvNavigationDtls_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName.Equals("EInsert"))
        {
            GridViewRow emptyrow = gvNavigationDtls.Controls[0].Controls[0] as GridViewRow;
            if (((TextBox)emptyrow.FindControl("txtCode")).Text == "")

在页面加载中,我也通过编写以下代码进行了检查

gvNavigationDtls.DataBind();
            Control c = gvNavigationDtls.Controls[0].FindControl("txtCode");
            if (c != null)
            {
            }

但c是空的,这意味着我无法找到控制使用它,请帮助,提前感谢

iih3973s

iih3973s1#

protected void gvNavigationDtls_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName.Equals("EInsert"))
        {
          TextBox txtCode=(TextBox)gvNavigationDtls.Controls[0].Controls[0].FindControl("txtCode");
          txtCode.Text="Your value";
        }
     }
lp0sw83n

lp0sw83n2#

实际上,刚刚遇到了这个问题,很容易找到访问数据的权限,但它在RowDataBound事件中。

Protected Sub grdView(sender As Object, e As GridViewRowEventArgs) Handles grdView.RowDataBound
        If e.Row.RowType = DataControlRowType.EmptyDataRow Then
            Dim txt As TextBox = e.Row.FindControl("txtBox")
            txt.Text = "Hey, this works!"
        End If
    End Sub
b4qexyjb

b4qexyjb3#

对我来说,上面的代码不起作用,我必须访问空模板,然后像这样找到控件:

TextBox tb1 = (TextBox)((System.Web.UI.Control)e.CommandSource).BindingContainer.Controls[0].FindControl("TextBox5");

“e.commandsource”的bindingcontainer是一个gridviewrow(然后,通过快速监视,你应该通过深入“controls”成员找到应用findcontrol的容器)

相关问题