网格视图中的用户控件

时间:2012-03-08 18:10:24

标签: c# asp.net gridview webusercontrol

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

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

在usercontrol的pageload中我添加了一个属性来调用这样的javascript函数:

protected void Page_Load(object sender, EventArgs e)
    {

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

    }
  public int RowID
        {
            get;
            set;
        }

现在,当我在gridview的日期框中进行更改时,无论它是什么行,它总是给出RowID为0并且不识别我在其他行中所做的更改。我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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 + ")");
}

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