【发布时间】:2011-12-03 18:52:51
【问题描述】:
我有一个 asp.net 页面,我在其中使用带有自定义分页的 gridView,并且在 gridview 中有一个 DropDownList 控件和基于每行控件的 javascript,它执行表单提交,并且必须引用与以下内容相关的唯一 DropDownList 名称这是行。
通常,如果我需要操作控件,我已经习惯于将“on databinding to row”类型的事件用于“FindControl”。但在这种情况下,我不能这样做,因为客户端脚本只会在渲染后引用这个控件。
在放置 DropDownList 的网格视图模板区域中,我尝试输出类似的内容:
... ID='<%# Eval("myID") + "_ddl" %>' ...
..仅作为示例,但编译器/解析器说“吠叫,吠叫,咆哮吠叫”你不能这样做,因为不能像这样分配 DopDownList 的 id。我还尝试在行数据绑定上分配控件的 CLientID,但它也不允许这样做,因为这是一个只写属性。
是否有任何简单的方法来实际控制 ddl 名称?我真的很想避免改变正在发生的事情的结构。我不需要找到 ddl 名称,我实际上需要使每一行中的每个 ddl 都是唯一的。 onclick 实际上来自其行中的另一个控件。不幸的是,JavaScript 是内联的。问题是 javascript 正在寻找具有唯一名称的 ddl,并且在网格视图中,ddl 的名称都是相同的。我的问题是如何在网格视图中为 ddl 强制使用唯一名称 ID。这可以做到吗。它不允许我使用我上面提到的方法。
这方面的一些背景是,这些数据曾经位于没有分页的普通表中。我不得不将它移动到 gridview 并进行自定义分页。
非常感谢您的建议..谢谢!
【问题讨论】: