繁体   English   中英

网格视图中的用户控件

[英]User control in a grid view

我在网格视图中有一个日期框用户控件,属性之一是RowID。 从Gridview我将行ID传递给日期框为

<uc2:datePage1 ID="txtSubToSA" RowID=<%# Container.DataItemIndex %>   runat="server" Enabled="true" Text= '<%#Eval("SUBMITTED_TO_SA") %>' />

在用户控件的页面加载中,我正在添加属性以调用如下所示的javascript函数:

protected void Page_Load(object sender, EventArgs e)
    {

        txtDate.Attributes.Add("onchange", "getRow(" + RowID + ")");

    }
  public int RowID
        {
            get;
            set;
        }

现在,当我在gridview的日期框中进行更改时,无论它是哪一行,它始终给出的行ID必须为0,并且无法识别我在其他行中所做的更改。 我在这里做错了什么?

在设置RowId之前,您要在Load事件处理程序中添加onchange属性-这将在数据绑定期间发生。 您可能覆盖数据DataBind并在完成数据绑定后设置属性:

public override void DataBind()
{
    base.DataBind();
    txtDate.Attributes.Add(...);
}

您可以改用此方法-将代码从

protected void Page_Load(object sender, EventArgs e)
{
    txtDate.Attributes.Add("onchange", "getRow(" + RowID + ")");
}

protected void Page_LoadComplete(object sender, EventArgs e)
{
    txtDate.Attributes.Add("onchange", "getRow(" + RowID + ")");
}

加载数据后,将触发“页面加载完成”事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM