當我的RadGrid離開編輯模式時,我需要獲取RadComboBox的客戶端實例(或RadComboBox的新選定值),以便我可以將更改後的值發佈回服務器。如何查找動態生成的HTML元素?
問題是,對象的客戶端ID始終發生變化。此外,RadComboBoxes不是在運行時創建的 - 它們僅在用戶雙擊我的RadGrid的特定行後才創建。因此,語法如
var SundayLoc = $find("<%= FieldOpsScheduler_ctl00_ctl05_RCB_SunLocale.ClientID %>");
等於失敗。直到我開始改變價值觀,我能逃脫這樣的:
var SundayLoc = $find("FieldOpsScheduler_ctl00_ctl05_RCB_SunLocale");
這每一次完美工作,直到我加入了一些行分隔符對象現在引起的ID的「ctl05」根據總是改變用戶將哪一行放入編輯模式。我嘗試過使用所有獲取此對象及其值的事項,但無濟於事。
我打算嘗試使用正則表達式,直到在閱讀社區維基回答後,bobince在RegEx match open tags except XHTML self-contained tags讓我意識到,用正則表達式解析HTML的誘惑是邪惡的撒旦產生的工作(那個和之後進一步的研究我得出結論,正則表達式可能不會幫助我)。
無論如何,如果有人可以用我的方式拋出一些想法,我會非常感激。先謝謝你。
項目符號1和2不會工作,因爲RadComboBoxes的控件ID不是在運行時生成的 - 它們是在我的RadGrid進入編輯模式後從一些GridDropDownListColumnEditor對象生成的。但是即使在使用FireBug之後,Bullet 3也可以工作,但我不清楚三個標記中哪一個正在存儲我需要的值(在我的情況下,RadComoBox似乎生成三個HTML標記,但是當我嘗試返回時,它們都沒有顯示存儲值它與jQuery)。 – KSwift87 2010-07-22 19:56:14
我非常感謝你的迴應,但我想我在再次查看所有JavaScript(不是真正的雄辯,但可靠)後,想出了一個答案。我將在測試完成後發佈它。 – KSwift87 2010-07-22 19:57:03
原來我的答案並不像我希望的那樣工作......尋找答案仍在繼續(明天)! – KSwift87 2010-07-22 20:05:30