pageload () не вызывается после обратной передачи - PullRequest
1 голос
/ 01 июня 2011

Мои div "вложения" не обновляются после обратной записи, и pageLoad () не вызывается

    <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>

После этой кнопки позвоните

 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.TableSection = TableRowSection.TableFooter;
  }


}

Мой сценарий выглядит так

       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"
    });
}`

любые предложения. Спасибо

* UPDATE **

У меня было несколько панелей обновления, как только я их удалил, все заработало.

Ответы [ 2 ]

0 голосов
/ 02 июня 2011

II закончил тем, что добавил это к Page_Load, и это работает

 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);

Однако мне все еще нужно добавить $ (document) .ready и тот же сценарий в заголовок, чтобы убедиться, что все работает, когда он изначально рендерится.Это плохая практика?

0 голосов
/ 01 июня 2011

Попробуйте:

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

});

И посмотрите, имеет ли это значение.Вы также можете использовать, когда запрос панели обновления заканчивается:

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

});

HTH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...