0

我有一个包含 jquery mobile 的 aspx 网页,我不知道为什么,每当我在代码中调用UpdatePanel.Update()时,都会出现一个白页!当然页面不是空的,因为当我查看源代码(ctrl+u)时,所有内容都可用。奇怪的是页面中的一个调用,2个ajax请求提交,所以两个不同的响应接收到两个不同的post参数。第一个请求中的帖子是这样的:

ScriptManager:UpdatePanel1|grdRequests$ctl03$btnCancel __ASYNCPOST:true __EVENTARGUMENT:无 __EVENTTARGET:无 __EVENTVALIDATION:此处的值 __LASTFOCUS:无
__VIEWSTATE 此处的值

和响应是这样的:

1|#| |4|5451|更新面板|更新面板1|

但是在第二个请求中没有 ScriptManager 和 ASYNCPOST 参数,作为响应,只有旧内容看不到更多数据。任何的想法?

客户端:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ConfOne.aspx.cs" Inherits="ConfDC"%>
<!DOCTYPE html> 
<html> 
    <head> 
    <meta name="viewport" content="width=device-width, initial-scale=1" /> 

    <link rel="stylesheet" href="jquery.mobile-1.1.1.min.css" />
    <script src="jquery-1.7.1.min.js" type="text/javascript"></script>
    <script src="jquery.mobile-1.1.1.min.js" type="text/javascript"></script>
</head> 
<body> 
<form id="form1" runat="server" dir="rtl" defaultbutton="btnpage" name="form1">
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode = "Conditional">
    <ContentTemplate>
    <table>
        <tr>
            <td>
                <asp:Button runat="server" ID="btnpage" Width="1px" Height="1px"  Visible="false"/>
                 <asp:ScriptManager ID="ScriptManager" runat="server"></asp:ScriptManager>
            </td>
        </tr>
    </table>
<div id="mcnt">
    <div data-role="page">
    <div data-role="content" style="padding: 10px; text-align: center;">

        <asp:GridView ID="tbls runat="server" AutoGenerateColumns="False" Width="100%"
            CssClass="mGrid" PagerStyle-CssClass="pgr" AlternatingRowStyle-CssClass="alt"
            CellPadding="1" CellSpacing="1" AllowPaging="True" DataKeyNames="Id" OnRowCommand="tbls_RowCommand"
            OnPageIndexChanging="tbls_PageIndexChanging">
            <Columns>
                <asp:TemplateField HeaderText="Amount">
                    <ItemTemplate>
                        <asp:Label ID="lblAmount" runat="server" Text='<%# Bind("Amount") %>'></asp:Label>
                    </ItemTemplate>
                    <ItemStyle/>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Button Text="Decline" ID="btnCancel" CommandName="CancelRequest" runat="server"
                            CommandArgument='<%# DataBinder.Eval(Container, "DataItem.id") %>' />
                    </ItemTemplate>
                    <HeaderStyle HorizontalAlign="Center" />
                    <ItemStyle HorizontalAlign="Center" />
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Button Text="Accept" ID="btnConfirm" CommandName="ConfirmRequest" runat="server"
                            OnClientClick="return confirm('Are you sure?');"
                            CommandArgument='<%# DataBinder.Eval(Container, "DataItem.id") %>' />
                    </ItemTemplate>
                    <HeaderStyle HorizontalAlign="Center" />
                    <ItemStyle HorizontalAlign="Center" />
                </asp:TemplateField>
            </Columns>
            <PagerStyle CssClass="pgr"></PagerStyle>
            <AlternatingRowStyle CssClass="alt"></AlternatingRowStyle>
        </asp:GridView>
        </div>
        <div id="rsnCnt">                     
        <asp:Panel ID="pnlReasons" Width="100%" runat="server" Visible="false">
             <fieldset>
                <asp:TextBox runat="server" ID="txtReasons" CssClass="TextArea" Height="70px" Width="100%"
                                TextMode="MultiLine"></asp:TextBox>
                <asp:Label ID="lblError" runat="server" ForeColor="Red"></asp:Label>
                <div id="btnActionCnt">
                    <div style="float:right;">
                        <asp:Button type="button" runat="server" ID="btnCancelRequest" Width="100px" class="groovybutton2"
                                Text="OK " OnClientClick="return confirm('are you sure?');" />
                    </div>
                     <div style="float:left;"> 
                    <asp:Button type="button" runat="server" ID="btnCancel" class="groovybutton2" Text="NOT OK"
                        onmouseover="" onmouseout=""
                        OnClick="btnCancel_Click" Height="25px" Width="100px" />        
                    </div>
                </div>
            </fieldset>
        </asp:Panel>
    </div>
    </div>
</div>   
     </ContentTemplate>
    </asp:UpdatePanel>
    </form>
</body>
</html>         

服务器端:

protected void tbls_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "CancelRequest")
    {
        pnlReasons.Visible = true;
        UpdatePanel1.Update();

    }
}   
4

2 回答 2

0

你在哪里绑定你的gridview ..你需要绑定它

private void Page_Load()
{
    if (!IsPostBack)
    {
        // Need to Bind your grid here
    }
}
于 2012-09-26T04:06:34.970 回答
0

我不知道为什么,但是当我删除更新面板时工作正常。

于 2012-09-29T12:19:03.327 回答