0

我在网格视图中有一个日期框用户控件,其中一个属性是 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 的日期框中进行更改时,无论它是哪一行,它总是将 RowID 设为 0,并且不识别我在其他行中所做的更改。我在这里做错了什么?

4

2 回答 2

0

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

public override void DataBind()
{
    base.DataBind();
    txtDate.Attributes.Add(...);
}
于 2012-03-08T18:20:36.970 回答
0

你可以试试这个 - 将代码从

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 + ")");
}

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

于 2012-03-08T18:59:03.450 回答