网格视图中的用户控件

本文关键字:用户 控件 视图 网格 | 更新日期: 2023-09-27 18:27:06

我在网格视图中有一个日期框用户控件,其中一个属性是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;
        }

现在,当我在网格视图的日期框中进行更改时,无论是哪一行,它总是给出RowID为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 + ")");
}

页面加载完成事件在加载数据后激发。