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>
<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>
1. 是该 UpdatePanel 内的控件(包括上篇说的 Trigger 方式设置的) 触发的,该 UpdatePanel 控件才刷新其内容
2. 是调用了该 UpdatePanel 控件的 Update() 方法, 该 UpdatePanel 控件才刷新其内容
3. 当 UpdatePanel 是嵌套时,(UpdatePanel 中还有别一个UpdatePanel),父级 UpdatePanel 发生刷新,子级也会跟随刷新
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
//.......
UpdatePanel1.Update(); }
<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 = '请跟进' where id = " + id);
break;
case "请核实":
DbHelperSQL.ExecuteSql("update person set = '请核实' where id = " + id);
break;
case "未报名":
DbHelperSQL.ExecuteSql("update person set = '未报名' where id = " + id);
break;
case "已报名":
DbHelperSQL.ExecuteSql("update person set = '已报名' where id = " + id);
break;
default:
break;
}
((UpdatePanel)item.FindControl("UpdatePanel1")).Update();
}
}
}
删掉foreach外面UpdatePanel1.Update();
回答这位同学,我panel和dropdownlist都是写在datalist里面的,而做为ajax的事件是DropDownList1_SelectedIndexChanged,foreach循环是为了找到控件,如果写在外面则很可能找不到控件。
没看清不好意思DataList外面再套一个updatepanel最后SelectedIndexChanged更新外面的updatepannel里面的那句还是不会try
楼主同学,这句根本不用加!!试试!!
同学,用datalist的SelectedIndexChanged成吗?我并没有任何选中……