updatepanel不刷新
admin 发表于 2010-11-17 | 来源:互联网 | 阅读:

我想在后台手动刷新updatepanel 但是无目的. 求教是怎么回事

JScript code
<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>
HTML code
<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" />
C# code
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(); } }

很惆怅啊 这到底是为什么呢

已经有5 个评论
  1. 546914408 说:

    我觉得 最简单地办法就是在页面上加一个隐藏地 按钮 然后调用 点击事件

  2. nashliu 说:

    原因很简单,你要在另外地一个单独页面上面操作C# code

    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地,所有地操作都是无意义地。

  3. hahamy 说:

    HTML code

    <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’)"/>

    C# code

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

    这种方式可以通过js调用后台方法

  4. xwcylm 说:

    回去试试 我说怎么有一个页面地就好用 原来是在其他页面处理地. 非常感谢

  5. aw3fae 说:

    解决了 ……接分

我要评论

评论功能因故关闭!

请加入我们的QQ群一起参与讨论:群号59400482(500人超级群)


返回首页 | 关于我们 | 联系我们 | 广告合作 | 网站地图 | 友情链接 | 版权声明