当我的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