我有一个数据列表,里面有一个下拉列表和动态加载的超链接,这意味着如果有一个用户,那么会有一个下拉列表和一个超链接,如果有两个用户,那么会有两个下拉列表和两个超链接。我的要求是当下拉列表中发生 onchange 事件时,我希望超链接的 id 与 javascript 中的下拉列表相关联。任何人都可以帮助我。
谢谢
我有一个数据列表,里面有一个下拉列表和动态加载的超链接,这意味着如果有一个用户,那么会有一个下拉列表和一个超链接,如果有两个用户,那么会有两个下拉列表和两个超链接。我的要求是当下拉列表中发生 onchange 事件时,我希望超链接的 id 与 javascript 中的下拉列表相关联。任何人都可以帮助我。
谢谢
您可以使用该Control.ClientIDMode
物业
可能的值:
例子:
<script type="text/javascript" src="Scripts/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
function ddlChanged(sender) {
var senderID = $(sender).attr("id");
var idSplitted = senderID.split("_");
var currentHyperLinkID = "dl_hl_" + idSplitted[2];
var currentHyperLink = $("#" + currentHyperLinkID);
alert(currentHyperLink.text());
}
</script>
<asp:DataList runat="server" ID="dl" ClientIDMode="Predictable" DataSourceID="ods">
<ItemTemplate>
<asp:DropDownList runat="server" ID="ddl" onchange="ddlChanged(this);">
<asp:ListItem Text="text1" />
<asp:ListItem Text="text2" />
</asp:DropDownList>
<br />
<asp:HyperLink NavigateUrl="http://www.google.com" runat="server" Text='<%# Eval("QuestionText") %>' ID="hl" />
</ItemTemplate>
</asp:DataList>
这将导致所有子控件都将使用以下格式生成客户端 ID:
<select name="dl$ctl00$ddl" id="dl_ddl_0" onchange="ddlChanged(this);">
<option value="text1">text1</option>
<option value="text2">text2</option>
</select>
<br />
<a id="dl_hl_0" href="http://www.google.com">QuestionText1</a>
例如:
dl_hl_0
在哪里:
DataList
HyperLink
控件的名称DataList
,每行中的所有控件都生成相同的编号注意:您应该考虑使用ListView
控件而不是DataList
控件。后者是遗留控件,不具有ListView
.
例如,有一个名为:的属性ClientIDRowSuffix
,用于插入主键作为客户端 ID 的一部分。DataList
该属性在控件中不可用