我在網格視圖中有一個日期框用戶控件,其中一個屬性是RowID。從GridView的我傳遞的行ID的datebox爲網格視圖中的用戶控件
<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,並且不識別我在其他行中所做的更改。我在這裏做錯了什麼?
你是指用戶控件或Gridview的DataBind? Usercontrol是一個簡單的文本框和ajax控制日曆擴展器。此用戶控件用於gridview的各個列中。我想在文本框用戶控件值的文本被更改的行上觸發onchange事件。 – user799891 2012-03-08 18:50:11
我通過設置屬性中的屬性而不是頁面加載來解決此問題。謝謝你的提示!這是我做的,它的工作。 'code'public int RowID { set { txtDate.Attributes.Add(「onchange」,「getRow(」+ value +「)」); } } – user799891 2012-03-08 19:05:56
@ user799891 - 我的意思是UserControl的'DataBind'方法 - 您需要在UserControl中才能訪問txtDate。但是,在屬性設置器中添加屬性的解決方案也會起作用 - 可能是更好的解決方案,因爲如果以編程方式設置RowId,而不是使用數據綁定,則它將工作。 – Joe 2012-03-08 19:20:39