如何使dropdownlist的SelectedIndexChanged事件在触发时不刷新页面

suzhu2500084 2007-12-28 02:21:09
有点郁闷,每次触发一次dropdownlist的SelectedIndexChanged的事件 页面就刷新一次,看着一点都不爽,但是不知道怎么解决,自我认为应该用javascript,可是不会写,还望各位大虾们不吝赐教
...全文
2642 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuzhen_xml 2011-10-05
  • 打赏
  • 举报
回复
弄了半天,还是不明白,看来还有很多路要走
wyp19870608 2011-06-23
  • 打赏
  • 举报
回复
我也正为这个问题找解呢,谢谢各位!
honeysue_51 2008-12-22
  • 打赏
  • 举报
回复
首先感谢下回答的人 我也正好问这个问题呢
LikeCode 2007-12-29
  • 打赏
  • 举报
回复
dropdownlist默认是不会回发的吧.
如果不必要的话,就将autopostback设为false,否则改变选项都会回发的.
要不主放在updatepanel里.
longjia 2007-12-29
  • 打赏
  • 举报
回复
<script type="text/javascript" language="javascript">
function ChangeType(index)
{
if(index==0)
{
}
else if(index==1)
{
}
else if(index==2)
{

}

}

</script>
<cc1:CustDropDownList ID="ddlInfoType" onchange="ChangeType(this.selectedIndex)"
runat="server"> </cc1:CustDropDownList>
yitian130 2007-12-29
  • 打赏
  • 举报
回复
把DropDownList扔到UpdatePanel里就可以了
godenlionx 2007-12-29
  • 打赏
  • 举报
回复
说了这半天,都没有提出你的dropdownlist在SelectedIndexChanged中需要做什么处理,如果不需要通过服务器来处理的话,用纯JS的脚本就可以,如果必须使用服务器端的资源,那就必须要使用象Ajax之类的技术了.
LZ有必要把自己的需求列清楚才好!
zkcq2004 2007-12-28
  • 打赏
  • 举报
回复
好像还要在Web.config里面加上
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
zkcq2004 2007-12-28
  • 打赏
  • 举报
回复
用Ajax
using System.Reflection;

private static MethodInfo triggerInitMethod =
typeof(UpdatePanelTrigger).GetMethod(
"Initialize",
BindingFlags.NonPublic | BindingFlags.Instance);

protected void Page_Init(object sender,EventArgs e)
{
AsyncPostBackTrigger trigger1 = new AsyncPostBackTrigger();
trigger1.ControlID = "DropDownList1";
this.UpdatePanel1.Triggers.Add(trigger1);
if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
{
triggerInitMethod.Invoke(trigger1, null);
}
}
在页面中添加2个AJAX控件
ScriptManager 和UpdatePanel,把你要触发的事件加到UpdatePanel里面 即可
bwangel 2007-12-28
  • 打赏
  • 举报
回复
.net的事件触发带来的负面效应,搞得现在的人连什么是客户端什么是服务端都搞不清了。
GhostAdai 2007-12-28
  • 打赏
  • 举报
回复
路人甲
heerxiong 2007-12-28
  • 打赏
  • 举报
回复
路过,帮顶
qawszx 2007-12-28
  • 打赏
  • 举报
回复
触发后台事件,刷新是必然的,建议你用AJAX updatepanel
suzhu2500084 2007-12-28
  • 打赏
  • 举报
回复
刚刚找到asp.net.ajax 还不会用 先看看
suzhu2500084 2007-12-28
  • 打赏
  • 举报
回复
你们牛多了 不象我啊 哎
禅-剑之初 2007-12-28
  • 打赏
  • 举报
回复
如果你只是简单的客户端操作,完全不必用AJAX
<script language="javascript">
function setDDL()
{
...
}
</script>

DropDownList1.Attribute.Add("onchange","return setDDL()");
xugq 2007-12-28
  • 打赏
  • 举报
回复
在你用程序更新(非手动) dropdownlist的值时 的代码段里

最前面写
//目的是去掉不必要的事件触发
dropdownlist.SelectedIndexChanged -= new System.EventHandler(bindingSource1_PositionChanged);

//代码段
*************************
*************************
//代码段

最后面写
//再加上的目的是 还原啊
dropdownlist.SelectedIndexChanged += new System.EventHandler(bindingSource1_PositionChanged);


michaelwangwh 2007-12-28
  • 打赏
  • 举报
回复
AJAX updatepanel
luckyboy110 2007-12-28
  • 打赏
  • 举报
回复
AJAX
e_god 2007-12-28
  • 打赏
  • 举报
回复
用AJAX吧
加载更多回复(15)

62,233

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧