updatepanel没有实现局部刷新

cc258040151 2010-10-20 02:22:09
aspx局部代码如下


<asp:UpdatePanel ID="UpdatePanel1"
runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Text="请跟进" Value="请跟进"></asp:ListItem>
<asp:ListItem Text="请核实" Value="请核实"></asp:ListItem>
<asp:ListItem Text="已报名" Value="已报名"></asp:ListItem>
<asp:ListItem Text="未报名" Value="未报名"></asp:ListItem>
</asp:DropDownList>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%#Eval("id") %>' />
</ContentTemplate>
</asp:UpdatePanel>

...全文
181 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
cc258040151 2010-10-20
  • 打赏
  • 举报
回复
快下班了,这样叫我如何结贴。。
cc258040151 2010-10-20
  • 打赏
  • 举报
回复
沉底了么?
cc258040151 2010-10-20
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 porschev 的回复:]
11楼的地方写错一个字。。最后一句

是里面那句还是不要,不是不会。。

五笔有时候让我小悲剧一下。。。
[/Quote]

同学,用datalist的SelectedIndexChanged成吗?

我并没有任何选中……
porschev 2010-10-20
  • 打赏
  • 举报
回复
11楼的地方写错一个字。。最后一句

是里面那句还是不要,不是不会。。

五笔有时候让我小悲剧一下。。。
cc258040151 2010-10-20
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 frankonlyfine 的回复:]

((UpdatePanel)item.FindControl("UpdatePanel1")).Update();


楼主同学,这句根本不用加!!试试!!
[/Quote]

谢谢这位同学踊跃发言,不加也没用…… = =
frankonlyfine 2010-10-20
  • 打赏
  • 举报
回复
((UpdatePanel)item.FindControl("UpdatePanel1")).Update();


楼主同学,这句根本不用加!!试试!!
porschev 2010-10-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 cc258040151 的回复:]
引用 8 楼 porschev 的回复:
((UpdatePanel)item.FindControl("UpdatePanel1")).Update();
删掉

foreach外面UpdatePanel1.Update();


回答这位同学,

我panel和dropdownlist都是写在datalist里面的,而做为ajax的事件是DropDownList1_Selec……
[/Quote]

没看清。。。不好意思

DataList外面再套一个updatepanel

最后SelectedIndexChanged更新外面的updatepannel

里面的那句还是不会。。。try

xiaogua 2010-10-20
  • 打赏
  • 举报
回复
我也遇到这个情况,怎么解决,总是会刷一下
cc258040151 2010-10-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 porschev 的回复:]
((UpdatePanel)item.FindControl("UpdatePanel1")).Update();
删掉

foreach外面UpdatePanel1.Update();
[/Quote]

回答这位同学,

我panel和dropdownlist都是写在datalist里面的,而做为ajax的事件是DropDownList1_SelectedIndexChanged,

foreach循环是为了找到控件,如果写在外面则很可能找不到控件。
porschev 2010-10-20
  • 打赏
  • 举报
回复
((UpdatePanel)item.FindControl("UpdatePanel1")).Update();
删掉

foreach外面UpdatePanel1.Update();
cc258040151 2010-10-20
  • 打赏
  • 举报
回复
回答刚才几位乐于助人的同学的问题:

第一,本页面存在控件scriptmanager

证据!

<body>
<form id="form1" runat="server">
<Inc:Head ID="Head2" runat="server" />
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>


第二,有写Update方法

证据!

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
//string value = ((DropDownList)dataListSchool.FindControl("DropDownList1")).SelectedItem.Text;
foreach (DataListItem item in dataListSchool.Items)
{
if ((item.ItemType == ListItemType.Item ) || (item.ItemType == ListItemType.AlternatingItem) || (item.ItemType == ListItemType.SelectedItem))
{
string value = ((DropDownList)item.FindControl("DropDownList1")).SelectedValue;
int id = Convert.ToInt32(((HiddenField)item.FindControl("HiddenField1")).Value);
switch (value)
{
case "请跟进":
DbHelperSQL.ExecuteSql("update person set mark = '请跟进' where id = " + id);
break;
case "请核实":
DbHelperSQL.ExecuteSql("update person set mark = '请核实' where id = " + id);
break;
case "未报名":
DbHelperSQL.ExecuteSql("update person set mark = '未报名' where id = " + id);
break;
case "已报名":
DbHelperSQL.ExecuteSql("update person set mark = '已报名' where id = " + id);
break;
default:
break;
}
((UpdatePanel)item.FindControl("UpdatePanel1")).Update();
}
}
}
daifangci 2010-10-20
  • 打赏
  • 举报
回复
同样的问题,最终用ajax的异步对象实现的
frankonlyfine 2010-10-20
  • 打赏
  • 举报
回复
楼主你给出的代码不就是只局部刷新吗?
porschev 2010-10-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 q107770540 的回复:]
当 UpdateMode 属性改为 Conditional 时,则该 UpdatePanel 的刷新关况依下面条件而定:
1. 是该 UpdatePanel 内的控件(包括上篇说的 Trigger 方式设置的) 触发的,该 UpdatePanel 控件才刷新其内容
2. 是调用了该 UpdatePanel 控件的 Update() 方法, 该 UpdatePanel 控件才刷新其内容
3. ……
[/Quote]

LZ看看这个第二点
xia623330606 2010-10-20
  • 打赏
  • 举报
回复
UpdatePanel是放上去了,有没有放ScriptManager呀,任何用到Ajax的控件都必须要在那个页面上放一个ScriptManager控件
koukoujiayi 2010-10-20
  • 打赏
  • 举报
回复
试试:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
//.......
UpdatePanel1.Update(); }
q107770540 2010-10-20
  • 打赏
  • 举报
回复
当 UpdateMode 属性改为 Conditional 时,则该 UpdatePanel 的刷新关况依下面条件而定:
1. 是该 UpdatePanel 内的控件(包括上篇说的 Trigger 方式设置的) 触发的,该 UpdatePanel 控件才刷新其内容
2. 是调用了该 UpdatePanel 控件的 Update() 方法, 该 UpdatePanel 控件才刷新其内容
3. 当 UpdatePanel 是嵌套时,(UpdatePanel 中还有别一个UpdatePanel),父级 UpdatePanel 发生刷新,子级也会跟随刷新

62,271

社区成员

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

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

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

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