jquery的方法参数传递,在源代码有问题!
1、protected void ListView1_ItemCreated (object sender, ListViewItemEventArgs e) {
//插入或编辑时.
if (e.Item.ItemType == ListViewItemType.DataItem || e.Item.ItemType == ListViewItemType.InsertItem) {
//找到链接类型的DropDownList.
DropDownList ddListLinkType = (DropDownList) e.Item.FindControl ("ddListLinkType");
//找到显示类型的logo地址的控件.
TextBox FLogoURLTextBox = (TextBox) e.Item.FindControl ("FLogoURLTextBox");
if (ddListLinkType != null && FLogoURLTextBox != null) {
ddListLinkType.Attributes["onchange"] = "linkTypeChange(this,'"+FLogoURLTextBox.ClientID+"')";
if (ddListLinkType.SelectedValue == "text") { //如果类型是文件,logo地址隐藏.
//FLogoURLTextBox.Attributes["display"] = "none";
FLogoURLTextBox.Style["display"] = "none"; //设置style而不是属性.
}
else if (ddListLinkType.SelectedValue == "pic") { //如果类型是图片,logo地址显示.
FLogoURLTextBox.Style["display"] = "";
}
else {
throw new Exception ("未知");
}
}
}
}
2、<script type="text/javascript">
function linkTypeChange(src, logoUrl) {
if ($(src).val() == "text") {
$("#" + logoUrl).hide();
} else if ($(src).val() == "pic") {
$("#" + logoUrl).show();
}
else { }
}
</script>
3:描述:DropDownList为"text"->logo隐藏;DropDownList为"pic"->logo显示;这是在ListView中做的。
我发现jquery部分的方法都没有被调用,
在后台C#代码传递方法linkTypeChange(src, logoUrl)的
logoUrl参数有问题。难道不对么?
------解决方案--------------------第一个参数this是后台页面对象,你应该传dropdown的id过去,在前台通过jquery根据id来获取他的val()是什么
------解决方案--------------------哦,我看错了,看成this在引号外了
------解决方案--------------------你在js函数里弹出第二个参数,再查看页面是不是有这个id
------解决方案--------------------或者你不用传第二个参数,通过 $(this).parent().find("input")查找那个文本框
<script type="text/javascript">
function linkTypeChange(src) {
if ($(src).val() == "text") {
$(this).parent().find("input").hide();
} else if ($(src).val() == "pic") {
$(this).parent().find("input").show();
}
else { }
}
</script>
------解决方案-------------------- $(this).parent().find("input")没找到是吗?你看看页面里实际的文本框是不是input,是不是通过其他属性来找那个文本框,并且看看是不是在$(this).parent()下
------解决方案--------------------$(src).val() 是什么东东?alert一下。
------解决方案--------------------这个是ListView里的控件,你看看html源代码里这个控件有没有id。如果没有那么你传了clientId也找不到的。。
------解决方案--------------------在后台是对象。在页面如果你不设置id或者name你怎么会知道是谁呢?
你确认过源代码吗?要是有这个id就没你说的问题了吧。。
------解决方案--------------------如果有id应该取的到啊。