我在我創建的ASP.NET項目中創建了一個Table的子類。該表使用一個類來格式化並創建TableRows和TableCells,我們可以將其稱爲RowCreator。因此,MyTable調用rowCreator.CreateRow()並返回一個TableRow,其中有很多好東西。如何爲我的ASP.NET TextBox獲取正確的ClientID?
在這個TableRow中,有一個TextBox應該在RowCreator類添加的onblur事件上觸發javascript方法。
textBox.Attributes.Add("onblur", "javascriptMethod('" + textbox.ClientID + "');");
我也嘗試創建文本框的子類,實現了增加onblur事件的方法:
Attributes.Add("onblur", "javascriptMethod('" + this + "');")
不工作。該ID只是文本框子類的名稱空間。
和JavaScript的方法很簡單:
function javascriptMethod(boxId) { alert(boxId); }
麻煩的是,我猜這是因爲TextBox控件還沒有被添加到控件集合然而,該boxId不是正確的客戶端ID。它與服務器端ID相同。有沒有辦法獲得正確的ID,而不必使用Controls.Add在頁面上添加行?還有其他建議嗎?
我甚至會這樣做的原因是從javascript函數中讀取文本框內容,只要它被更改。也許有更好的方法來做到這一點?
一個簡單而優雅的解決方案。 – Raithlin 2009-01-19 10:44:39