updatepanel不刷新

moonlightme 2010-11-16 03:47:18
我想在后台手动刷新updatepanel 但是无效果. 求教是怎么回事



<script language="javascript" type="text/javascript">
function couponTypeChanged() {
xmlHttp = GetXmlHttpObject();
var url = "Default.aspx?type=couponTypeChanged";
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
if (xmlHttp.responseText == "success") {
$("#cph_btnHideTypeChanged").click();
}
}
}
xmlHttp.setRequestHeader("If-Modified-Since", "0");
xmlHttp.send(null);
}
</script>





<table width="50%" border="0" cellpadding="0" cellspacing="0" class="data-table-3"
align="center">
<%--优惠券发送部分 --%>
<tr>
<td class="v14-header-3" colspan="2">
123 </td>
</tr>
<tr>
<td width="100px" align="center">
主类型:
</td>
<td>
<asp:DropDownList runat="server" ID="ddlCouponType" Width="150px" onchange="couponTypeChanged()">
<asp:ListItem Text="代金" Value="LOC"></asp:ListItem>
<asp:ListItem Text="实物" Value="GOODS"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td width="100px" align="center">
详细分类:
</td>
<td>
<asp:UpdatePanel runat="server" ID="UP3" UpdateMode="Conditional" ChildrenAsTriggers="false">
<ContentTemplate>
<asp:DropDownList runat="server" ID="ddlCTD" Width="150px">
<asp:ListItem Text="--请选择主类型--" Value="0"></asp:ListItem>
</asp:DropDownList>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnHideTypeChanged" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</td>
</tr>
<tr id="trCouponTips" style="display: none">
<td colspan="2" align="center">
处理中,请稍候……
</td>
</tr>
</table>
<asp:Button runat="server" ID="btnHideTypeChanged" OnClick="btnHideTypeChanged_Click"
Style="display: none" />





protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["type"] == "couponTypeChanged")
{
couponTypeReload();
}
}

protected void btnHideTypeChanged_Click(object sender, EventArgs e)
{
UP3.Update();
//ScriptManager.RegisterClientScriptBlock(UP3, GetType(), "123", "alert('click')", true);
}

private void couponTypeReload()
{
try
{
ddlCTD.Items.Clear();
for (int i = 0; i < 3; i++)
{
ddlCTD.Items.Add(i.ToString());
}
Response.Write("success");
}
catch (Exception ex) { Response.Write(ex.Message.Replace("\r\n", "").Replace("'", "")); }
finally { Response.End(); }
}





很惆怅啊 这到底是为什么呢
...全文
440 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycproc 2010-11-16
  • 打赏
  • 举报
回复
解决了 ……
接分
moonlightme 2010-11-16
  • 打赏
  • 举报
回复
回去试试 我说怎么有一个页面的就好用 原来是在其他页面处理的. 非常感谢
liuwei2500 2010-11-16
  • 打赏
  • 举报
回复

<table width="50%" border="0" cellpadding="0" cellspacing="0" class="data-table-3"
align="center">

<tr>
<td class="v14-header-3" colspan="2">
123 </td>
</tr>
<tr>
<td width="100px" align="center">
主类型:
</td>
<td>
<asp:DropDownList runat="server" ID="ddlCouponType" Width="150px" onchange="couponTypeChanged()">
<asp:ListItem Text="代金" Value="LOC"></asp:ListItem>
<asp:ListItem Text="实物" Value="GOODS"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td width="100px" align="center">
详细分类:
</td>
<td>
<asp:UpdatePanel runat="server" ID="UP3" UpdateMode="Conditional" ChildrenAsTriggers="false">
<ContentTemplate>
<asp:DropDownList runat="server" ID="ddlCTD" Width="150px">
<asp:ListItem Text="--请选择主类型--" Value="0"></asp:ListItem>
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
<tr id="trCouponTips" style="display: none">
<td colspan="2" align="center">
处理中,请稍候……
</td>
</tr>
</table>
<asp:LinkButton ID="Link" runat="server" OnClick="ChangeValue"></asp:LinkButton>
<input id="Button1" type="button" value="button" onclick="__doPostBack('Link','hello,world')"/>


protected void ChangeValue(object sender, EventArgs e)
{
Response.Write(Request.Form["__EVENTARGUMENT"].ToString());
}

这种方式可以通过js调用后台方法
liuwei2500 2010-11-16
  • 打赏
  • 举报
回复
原因很简单,你要在另外的一个单独页面上面操作

private void couponTypeReload()
{
try
{
ddlCTD.Items.Clear();
for (int i = 0; i < 3; i++)
{
ddlCTD.Items.Add(i.ToString());
}
Response.Write("success");
}
catch (Exception ex) { Response.Write(ex.Message.Replace("\r\n", "").Replace("'", "")); }
finally { Response.End(); }
}

你的这个最后Response.End的,所有的操作都是无意义的。
taikonhmao67 2010-11-16
  • 打赏
  • 举报
回复
我觉得 最简单的办法就是在页面上加一个隐藏的 按钮 然后调用 点击事件

62,047

社区成员

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

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

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

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