我有asp.net頁面,我正在使用自定義分頁的GridView,並且在GridView中有一個DropDownList控件和基於每行控件的JavaScript,它提交表單並且必須參照到與其行相關的唯一DropDownList名稱。GridView中的DropDownList的動態名稱
通常,如果我需要操縱控件,我習慣於使用「在數據綁定到行」類型的事件「FindControl」。但在這種情況下,我不能這樣做,因爲客戶端腳本在渲染後只會引用此控件。
在網格視圖模板區域,其中DropDownList的放置,我試圖輸出的東西的排序:
... ID='<%# Eval("myID") + "_ddl" %>' ...
..just作爲一個例子,但是編譯器/語法分析器,所述「樹皮,樹皮,咆哮樹皮「你不能這樣做,因爲DopDownList的id不能這樣分配。我也試圖在行數據綁定上分配控件的CLientID,但是它不允許這麼做,因爲這是一個只寫屬性。
是否有任何簡單的方法來實際控制ddl名稱?我真的想避免改變發生的結構。我不需要找到ddl名稱,我實際上需要使每行中的每個ddl都是唯一的。 onclick實際上來自其行中的另一個控件。不幸的是JavaScript是內聯的。問題是JavaScript正在尋找具有唯一名稱的ddl,並且在網格視圖中,ddl的名稱都是相同的。我的問題是我如何在網格視圖中強制ddl的唯一名稱ID。這可以做到嗎?它不會允許我使用上面提到的方法。
這方面的一些背景是,這個數據曾經在一個沒有分頁的普通表中。我不得不將它移動到一個gridview並做一個自定義分頁。
意見非常感謝..謝謝!
我的主要問題是DropDownList的ClientID對於GridView的每一行都不是唯一的。它混淆了基於JavaScript的行,因爲最終有25個DropDownList控件具有完全相同的名稱。所以,我的問題是,我需要控制每個DDL在呈現給客戶端時的命名方式,以便不必更改JavaScript。我可以獲得沒有問題的值,但是我的主要問題是我似乎無法控制DropDownList的ID。這似乎很奇怪。 – byten
我看了一下你發佈的JQuery示例。我會看看這是否能讓我得到任何東西。但我畏縮不得不重新構建JavaScript。基本上我只是想要一個解決方案,我可以以某種方式強制我的DropDownList ID是獨一無二的...然後所有的都會很好,我不必重新研究js是如何完成的。想要真正避免它。現在,js在每行的onclick事件中內聯,並按名稱引用其行中的ddl。 – byten
嗯......當我添加'ToolTip ='<%#((GridViewRow)Container).FindControl(「ddlControl」)。ClientID%>''我得到一個唯一的ID。它的形式爲'ContentPlaceHolderName_GridViewName_ControlName_RowID' –