//后台处理代码,通过设置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处理!!能有其他啥办法解决嘛???
解决方案 »
- jquery animate background-position不能做动画
- 怎样在js中完成表单jsp上传文件?
- 大哥大姐们帮帮忙
- 请问javascript中img的onload问题?
- 关闭父窗?
- 判断两个隔开的字符串相等问题,高手进来呀!
- jquery ui dialog destroy 后autocomplete失效!
- 请问 <iframe src="dd.html?dd=dddddddd"</form> 在dd.html中怎样接收dd变量的值。
- 请问如何把内容导入到以有的Word模板的相应空格中去?
- 高手,救命啊!!在線等!
- js传叁时 url参数过长导致被截掉了.因为是get提交方式
- 菜鸟求助,怎么做一个选择级联,
楼主的这段代码与杨中科老师.NET视频教程第13季将ListView中处理DropDownList的案例好像啊~~
ddlLinkType.Attributes["onchange"] = "onLinkTypeChange(this,'text[i]')";