jquery的方法参数传递,在源代码有问题!1、protected void ListView1_ItemCreated (object sender, ListView
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应该取的到啊。
只能调试了。你在后台程序里看看clientid是什么。再看看页面源代码里的id是什么。
[解决办法]
你想的没错。。我也这么觉得。。
但是确认下看看思路和现实是不是有出入。
[解决办法]肯定是你传递参数,获取对象有问题,
jquery源码怎么会有问题,
即使有,你碰上bug的几率也非常小