asp:updatepanel中的按钮不起作用

时间:2014-01-28 10:39:19

标签: asp.net

我在html中有这个代码。 Answer_P中的所有按钮都不起作用,但是对于另一个项目,相同的代码工作正常。我现在不知道为什么。 很感谢任何形式的帮助。 当我调试并点击Cancel_btn没有任何事件或request.to anuther字 不要运行Cancel_btn_Click函数

    <asp:UpdatePanel runat="server" ID="U" UpdateMode="Conditional">
    <ContentTemplate>
        <div class="Div" style="box-shadow: 3px 2px 24px #000000">
            <asp:Panel runat="server" ID="Show_P">
                <div style="min-width: 300px; margin: 0px auto; text-align: center">
                    <div style="padding-top: 10px">
                        <table>
                            <tr>
                                <asp:GridView runat="server" ID="GRD" DataKeyNames="ID" AutoGenerateColumns="false" OnRowCommand="OnRowCommend_Click">
                                    <Columns>
                                        <asp:BoundField HeaderText="نام" DataField="Name" />
                                        <asp:BoundField HeaderText="ایمیل" DataField="Email" />
                                        <asp:BoundField HeaderText="موضوع" DataField="Subject" />
                                        <asp:BoundField HeaderText="متن" DataField="Text" />
                                        <asp:BoundField HeaderText="پاسخ" DataField="Answer" />
                                        <asp:ButtonField ButtonType="Image" ImageUrl="../Image/Comment.png" CommandName="Answer" Text="پاسخ دادن" HeaderText="پاسخ دادن" />
                                    </Columns>
                                </asp:GridView>
                            </tr>
                        </table>
            </asp:Panel>
            <asp:Panel runat="server" ID="Answer_P">
                <table>
                    <tr>
                        <td>نام</td>
                        <td>
                            <asp:TextBox runat="server" ID="Name_txt" CssClass="Txt-class"></asp:TextBox></td>
                    </tr>
                    <tr>
                        <td>ایمیل</td>
                        <td>
                            <asp:TextBox runat="server" ID="Email_txt" CssClass="Txt-class"></asp:TextBox></td>
                    </tr>
                    <tr>
                        <td>موضوع</td>
                        <td>
                            <asp:TextBox runat="server" ID="Subject_txt" CssClass="Txt-class"></asp:TextBox></td>
                    </tr>
                    <tr>
                        <td>متن</td>
                        <td>
                            <uc1:CK_Editor runat="server" ID="Text_CK" />
                        </td>
                    </tr>
                    <tr>
                        <td>پاسخ</td>
                        <td>
                            <uc1:CK_Editor runat="server" ID="Answer_CK" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <asp:Button runat="server" ID="Answer_btn" Text="پاسخ" CommandName="Answer" CssClass="btn-blue" /></td>
                        <td>
                            <asp:Button runat="server" ID="Cancel_btn" Text="لغو" CommandName="Cancel" CssClass="btn-blue" OnClick="Cancel_btn_Click" /></td>
                    </tr>
                </table>
            </asp:Panel>
        </div>
    </ContentTemplate>
</asp:UpdatePanel>

5 个答案:

答案 0 :(得分:0)

在页面加载事件中添加此代码

using AjaxControlToolkit;

添加ToolScriptManager代替ScriptManager

修改

Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server."

如果在多个更新面板中将控件注册为AsyncPostbackTrigger,有时会出现此问题。

如果这不是问题,请尝试在脚本管理器声明后添加以下内容:

<script type="text/javascript" language="javascript">
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    function EndRequestHandler(sender, args){
        if (args.get_error() != undefined){
            args.set_errorHandled(true);
        }
    }
</script>

此处讨论了更多解决方案:http://forums.asp.net/t/1066976.aspx/9/10

答案 1 :(得分:0)

如果您希望按钮工作,则必须使用触发器 试试:

<asp:UpdatePanel runat="server" ID="U" UpdateMode="Conditional">
<ContentTemplate>
.....
 </ContentTemplate>
  <Triggers >
    <asp:AsyncPostBackTrigger ControlID="Answer_btn" EventName="Click" />
    <asp:AsyncPostBackTrigger ControlID="Cancel_btn" EventName="Click" />
</Triggers>
</asp:UpdatePanel>

如果你的按钮在页面顶部不起作用,请使用 EnableEventValidation =“false”

<%@ Page Title="" Language="C#" ...  EnableEventValidation="false" ....

答案 2 :(得分:0)

似乎将UseSubmitBehavior =“false”添加到按钮定义已解决 我的问题。您也可以将取消按钮与AsyncPostBackTrigger绑定为..

<Triggers>
    <asp:AsyncPostBackTrigger ControlID="Cancel_btn" /> 
</Triggers>

答案 3 :(得分:0)

我通过web.config中的代码解决了这个问题

<pages validateRequest="false">

答案 4 :(得分:0)

我遇到了同样的问题。只需将其添加到您的页眉:

<meta http-equiv="X-UA-Compatible" content="IE=9" />

请参阅此主题的答案:

https://stackoverflow.com/a/33156665/1821637