我在asp.net页面上使用了带有自定义分页的gridView,并且在gridview中有一个DropDownList控件和基于行的基于javascript的javascript,它执行表单提交,并且必须引用与其行相关的唯一DropDownList名称。
通常,如果我需要操纵控件,我已经习惯于将事件类型为“ FindControl”使用“ on databinding to row”。但是在这种情况下,我无法执行此操作,因为客户端脚本仅在呈现此控件后才引用该控件。
在放置DropDownList的网格视图模板区域中,我尝试输出以下内容:
... ID='<%# Eval("myID") + "_ddl" %>' ...
..仅作为示例,但是编译器/解析器说“ Bark,Bark,咆哮的Bark”,您不能这样做,因为不能像这样分配DopDownList的ID。我还尝试在行databind上分配控件的CLientID,但由于这是只写属性,因此也不可行。
有什么简单的方法可以实际控制ddl名称?我真的想避免更改正在发生的结构。我不需要找到ddl名称,实际上我需要使每一行中的每个ddl都唯一。 onclick实际上来自其行中的另一个控件。不幸的是,JavaScript是内联的。问题是javascript正在寻找具有唯一名称的ddl,并且在网格视图中ddl的名称都相同。我的问题是如何在网格视图中为ddl强制使用唯一的名称ID。可以做到这一点。它不允许我使用上面提到的方法。
关于此的一些背景是,该数据曾经位于没有分页的纯表中。我必须将其移至gridview并进行自定义分页。
意见非常感谢..谢谢!
最佳答案
我不确定您要解决哪个问题。可能是,我在下拉列表中,我需要找到ClientId。然后使用克里斯·穆林斯(Chris Mullins)对How do I find the Client ID of control within an ASP.NET GridView?的答案中的答案
用途'<%# ((GridViewRow)Container).FindControl("ddlName").ClientID %>'
如果需要从控件外部获取下拉菜单,则可以按照How to get cell value of gridview using JQUERY中的说明遍历网格
关于c# - GridView中DropDownList的动态名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7700777/