[英]No “tab to move to next input element” in dynamically-generated HTML?
[英]How to find a dynamically-generated HTML element?
當我的RadGrid離開編輯模式時,我需要獲取RadComboBox的客戶端實例(或RadComboBox的新選擇的值),以便將更改后的值回發到服務器。
問題是,對象的客戶端ID總是會更改。 此外,不會在運行時創建RadComboBoxes-僅在用戶雙擊我的RadGrid的特定行之后才創建RadComboBox。 因此,語法例如
var SundayLoc = $find("<%= FieldOpsScheduler_ctl00_ctl05_RCB_SunLocale.ClientID %>");
等於失敗。 直到我開始改變價值,我才得以擺脫:
var SundayLoc = $find("FieldOpsScheduler_ctl00_ctl05_RCB_SunLocale");
每次我都能完美地工作,直到我添加了一些行分隔符對象,這些對象現在導致id的“ ctl05”始終根據用戶進入編輯模式的行而改變。 我嘗試使用獲取此對象及其值的所有事項,但無濟於事。
我打算嘗試使用正則表達式,直到在RegEx上通過bobince 匹配開放標簽閱讀社區Wiki答案后, 除了XHTML自包含標簽 ,我才意識到,用正則表達式解析HTML的誘惑是邪惡的Satan-產生(在進一步研究之后,我得出的結論是正則表達式可能對我沒有幫助)。
無論如何,如果有人可以我的方式提出一些想法,我將不勝感激。 先感謝您。
您可能需要做更多的工作才能找到您的實際值。 對於engragistics的花式褲控件,它們提供了一種特殊的方法來獲取有關“控件”整體的信息。 rad控件可能有類似的東西。
好的,所以我最終得出的答案並不是很雄辯,但它是100%可靠的,而且全部在客戶端(這很好,因為我的公司將IE7作為其標准Web瀏覽器x_x)。
我能夠擺脫一堆$ find命令和if語句,因為我不再需要搜索特定的HTML id。
function SelectedIndexChanged(sender,eventArgs)
{
var rcbID = sender.get_id();
var LocID = rcbID.substring(0,37) + "Locale";
pastCombo = currentCombo;
currentCombo = eventArgs.get_item().get_text();
if(editedRow != null)
{
var Location = $find(LocID);
由於ID並不是在服務器端生成的(據我所知,盡管我承認我沒有嘗試過Roatin的解決方案,因為我在看到他的答案之前就已經考慮過我的問題了,因為我已經在做一個一堆JavaScript客戶端),我環顧四周,看看已經得到了什么,並意識到var rcbID = sender.get_id();
已經為我提供了與我一直在尋找的價值極其相似的價值(只是不說SunLocale,而是說SunActivity)。
因此,我想了一下,我可以將rcbID中的所有內容都substring(),然后將“ Locale”附加到該字符串中,然后在該字符串上運行$ find()命令,以獲取正確的RadComboBox。 事實證明它可行。 無論如何,盡管我最終找到了自己的解決方案,但我還是感謝你們調查我的問題。 :-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.