JQuery处理ListView中绑定控件的ClientID问题,传入的值与渲染到浏览器器的ID不一致?该如何解决?
[code=C#][/code]
//后台处理代码,通过设置DropDownList的onchange事件,其处理响应函数为客户端JQuery的onLinkTypeChange()函数:
protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
DataRowView rowView = (DataRowView)e.Item.DataItem;
DropDownList ddlLinkType = (DropDownList)e.Item.FindControl("ddlLinkType");
if (rowView != null && ddlLinkType != null)
{
var linkRow = (ASP.Net高级.综合应用案例.DAL.lvds1.T_LinksRow)rowView.Row;
ddlLinkType.SelectedValue = linkRow.LinkType;
}
}
if (e.Item.ItemType == ListViewItemType.InsertItem)
{
DropDownList ddlLinkType = (DropDownList)e.Item.FindControl("ddlLinkType");
TextBox LogoURLTextBox = (TextBox)e.Item.FindControl("LogoURLTextBox");
if (ddlLinkType != null && LogoURLTextBox != null)
{
ddlLinkType.Attributes["onchange"] = "onLinkTypeChange(this,'" + LogoURLTextBox.ClientID + "')";//通过参数,将当前处理对象和LogoURLTextBox的ClientID一块传入
if (ddlLinkType.SelectedValue == "Text")
{
LogoURLTextBox.Style["display"] = "none";
}
}
}
}
//JQuery处理函数onLinkTypeChange():
<script src="../script/jquery-1.4.2.min.js" type="text/javascript"></script>
<script type ="text/javascript">
function onLinkTypeChange(src,logoTextId) {
if ($(src).val() == "Text") {
$("#"+logoTextId).hide();
}
else {
$("#"+logoTextId).show();
}
}
</script>
问题是传入的ClientID与浏览器客户端渲染的html代码的Id不一致。!!!!请问该如何解决?看过人家解决的办法。在DataBound等事件其ID能正确渲染,但问题是这些事件又不进行ListViewItemType.InsertItem处理!!能有其他啥办法解决嘛???
------解决方案--------------------
右键,查看源代码,不就可以看到生成的ID了吗
firebug 更方便