我在网格视图中有一个日期框用户控件,其中一个属性是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并且不识别我在其他行中所做的更改。我在这里做错了什么?
答案 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 + ")");
}
加载数据后会触发页面加载完成事件。