开发者

pageload() not being called after postback

开发者 https://www.devze.com 2023-03-10 01:10 出处:网络
My div \"attachements\" is not refreshing after a post back and pageLoad() is not being called <div id =\"attachments\">

My div "attachements" is not refreshing after a post back and pageLoad() is not being called

    <div id ="attachments">
<asp:UpdatePanel ID="updtPnlAttachements" runat ="server"  >

    <ContentTemplate>
         <asp:GridView ID="gvAttachments" runat="server"  ClientIDMode = "Static"   Width ="100%">
           <Columns>


           </Columns>
           <EmptyDataTemplate>
           <div> Sorry Empty</div>
           </EmptyDataTemplate>               
         </asp:GridView>

     </ContentTemplate>

</asp:UpdatePanel>

After making this button call

 public void ReportLinkButton_Click(object sender, EventArgs e)
{

  LinkButton Lbtn = (LinkButton)sender;
  string assessmentString = Lbtn.CommandArgument;
  Guid assessmentID = new Guid(assessmentString);

  DR_Data db = new DR_Data();
  var reports = db.GetAttachmentsByAssessmentID(assessmentID).ToList();

  gvAttachments.DataSource = reports;
  gvAttachments.DataBind();

  if (reports.Count() > 0)
  {
      gvAttachments.HeaderRow.TableSection = TableRowSection.TableHeader;
      gvAttachments.FooterRow.TableSec开发者_如何转开发tion = TableRowSection.TableFooter;
  }


}

My script looks like this

       function pageLoad() {var totalRows = $("#<%=gvAttachments.ClientID %> tr").length;

    if (totalRows > 0) {

        $("#dialog:ui-dialog").dialog("destroy");

        $("#attachments").dialog({
            hide: "fold",
            show: "blind",
            height: 500,
            width: 800,
            modal: true
        });
    }

    $('#gvNcReports').dataTable({
        "bJQueryUI": true,
        "sPaginationType": "full_numbers"
    });
}`

any suggestions. Thanks

*UPDATE**

I had multiple update panels, once I removed them it worked.


Try :

using Sys.Application.add_load(function(sender, e) {

});

And see if that makes a difference. You can also use, when the update panel request ends:

var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function(sender, e) {

});

HTH.


II ended up adding this to Page_Load and it works

 string script = @"<script> 
                   function pageLoad() {
                    $('#gvNcReports').dataTable({
                      "bJQueryUI": true,
                      "bPaginate": false
                            });
                   $("#dialog:ui-dialog").dialog("destroy");
                   $("#updtPnlAttachements").dialog({
                    hide: "fold",
                    show: "blind",
                    height: 500,
                    width: 800,
                    modal: true
                   });
                }
                });</script>";

 Page.ClientScript.RegisterClientScriptBlock(this.GetType(),"hover",script);

However I still have to add $(document).ready and the same script in the header to make sure everything works when it initially renders, is this bad practice?

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号