AsyncPostBackTrigger禁用按钮按钮、AsyncPostBackTrigger

2023-09-10 21:45:48 作者:青春是糖゛甜到忧伤

我有一个简单的UpdatePanel,并在它之外的按钮。我介绍的按钮在UpdatePanel中的AsyncPostBackTrigger。 UpdatePanel的本身工作正常,但按钮不会。只要单击该按钮,它的点击处理程序不运行就像按钮没有点击了!

为什么按钮没有工作,怎么能解决吗?

更新: 这里是标记:

 < ASP:UpdatePanel的ID =upGridView=服务器的UpdateMode =条件>
            <的ContentTemplate>
                < ASP:GridView控件ID =grdListSkinID =SimpleGridViewDataKeyNames =键=服务器
                    AllowPaging =真,每页=15的AutoGenerateColumns =FALSE标题=<%$资源:CommonResources,grdListCaption%>中
                    EmptyDataText =<%$资源:CommonResources,grdListEmptyDataText%>中OnRowEditing =grdList_RowEditing
                    OnPageIndexChanging =grdList_PageIndexChangingOnRowCreated =grdList_RowCreated>
                    <列>

                    < /列>
                < / ASP:GridView控件>
            < /的ContentTemplate>
            <触发器>
                < ASP:AsyncPostBackTrigger控件ID =btnDelete事件名称=点击/>
                < ASP:AsyncPostBackTrigger控件ID =btnN​​ew事件名称=点击/>
                < ASP:AsyncPostBackTrigger控件ID =btnForward事件名称=点击/>
            < /触发器>
        < / ASP:UpdatePanel的>

        < ASP:按钮的ID =btnDelete=服务器SkinID =按钮文本=<%$资源:CommonResources,btnDelete%>中
            的OnClick =btnDelete_Click/>
        < ASP:按钮的ID =btnN​​ew=服务器SkinID =按钮文本=<%$资源:CommonResources,btnNew%>中
            的OnClick =btnN​​ew_Click/>
        < ASP:按钮的ID =btnForward=服务器SkinID =按钮元:的ResourceKey =btnForward
            的OnClick =btnForward_Click/>
 

解决方案

作为其清晰的页面(模块)不成才的Page_Load事件,这事件prevent potbacking您的按钮。

我的意思是你尝试后回来,Page_Load事件再次运行,一切都显示为第一次,

我有这个problemt和resolveit通过将一个

 如果(!的IsPostBack)
      做一点事();
 

按钮的禁用状态

I've a simple UpdatePanel and a button outside of it. I've introduced the button as an AsyncPostBackTrigger in the UpdatePanel. UpdatePanel itself works fine but the button does not. Whenever the button is clicked, its click handler does not run just like the button is not clicked at all!

Why the button is not working and how can it be fixed?

UPDATE: here is the markup:

            <asp:UpdatePanel ID="upGridView" runat="server" UpdateMode="Conditional">
            <ContentTemplate>
                <asp:GridView ID="grdList" SkinID="SimpleGridView" DataKeyNames="Key" runat="server"
                    AllowPaging="True" PageSize="15" AutoGenerateColumns="False" Caption="<%$ Resources: CommonResources, grdListCaption %>"
                    EmptyDataText="<%$ Resources: CommonResources, grdListEmptyDataText %>" OnRowEditing="grdList_RowEditing"
                    OnPageIndexChanging="grdList_PageIndexChanging" OnRowCreated="grdList_RowCreated">
                    <Columns>

                    </Columns>
                </asp:GridView>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="btnDelete" EventName="Click" />
                <asp:AsyncPostBackTrigger ControlID="btnNew" EventName="Click" />
                <asp:AsyncPostBackTrigger ControlID="btnForward" EventName="Click" />
            </Triggers>
        </asp:UpdatePanel>

        <asp:Button ID="btnDelete" runat="server" SkinID="Button" Text="<%$ Resources: CommonResources, btnDelete %>"
            OnClick="btnDelete_Click" />
        <asp:Button ID="btnNew" runat="server" SkinID="Button" Text="<%$ Resources: CommonResources, btnNew %>"
            OnClick="btnNew_Click" />
        <asp:Button ID="btnForward" runat="server" SkinID="Button" meta:resourcekey="btnForward"
            OnClick="btnForward_Click" />

解决方案

as its clear your Page (Module) does someting in Page_Load event and this event prevent potbacking your button.

I mean You try to post back, and Page_Load event run again and everything appear as the first time,

I had this problemt and resolveit by putting a

  if(!IsPostBack)
      DoSomething();

 
精彩推荐
图片推荐