日期:2014-05-17  浏览次数:21006 次

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应该取的到啊。