div onclick без полной перезагрузки страницы? - PullRequest
1 голос
/ 12 декабря 2011

Я использую

для вызова серверной части. Как я могу избежать полного обновления страницы, когда пользователь нажимает
?

Вот мое кодирование.

HTML

 <asp:UpdatePanel ID="updatePanel1" runat="server">  <ContentTemplate>
 <div id ="cde" runat="server" style="background-color: #00FFFF" > </div>
  <asp:Label ID="Label1" runat="server" Text="Label"> </asp:Label>
 </ContentTemplate> </asp:UpdatePanel>

Серверная сторона

 protected void Page_Load(object sender, EventArgs e)
    {
        //--Register for div onclick function --
        cde.Attributes["onclick"] = ClientScript.GetPostBackEventReference(this, "divMember_Click");
        //**Register for div onclick function**
    }
protected void divMember_Click()
    {

        this.Label1.Text = System.DateTime.Now.ToString();

    }
    public void RaisePostBackEvent(string eventArgument)
    {
        if (!string.IsNullOrEmpty(eventArgument))
        {

            if (eventArgument == "divMember_Click")
            {

                divMember_Click();

            }

        }
    }

Я пытаюсь разместить ярлык на панели обновлений. Но постбэк все равно будет происходить. Как я могу обновить ярлык без полной перезагрузки страницы?

Ответы [ 4 ]

0 голосов
/ 12 декабря 2011

Для использования UpdatePanel на вашей странице должен присутствовать asp: ScriptManager.Смотрите здесь .

0 голосов
/ 12 декабря 2011

Попробуйте так,

Сохраните ярлык в идентификаторе панели обновлений "Updatepanel1" со следующими свойствами

Update Mode : Conditional
EnableViewState : true(if you are using it)
0 голосов
/ 12 декабря 2011

Вы можете использовать функцию Jquery .ajax или pagemethod.YourWebMethod.

Создайте веб-метод в вашем коде C # и вызовите его, используя эти две функции.

Вы можете сделать метод страницы с помощью EnabledPageMethod = "true" в диспетчере скриптов и использовать функцию Jaquery .ajax, поставив скрипт jquery java.

Это будет на странице за кодом (создать веб-метод):

public partial class _Default : Page 
{

  [WebMethod]

  public static string GetDate()



{

return DateTime.Now.ToString ();

}

}

Как указано в Default.aspx, это java-скрипт:

$(document).ready(function() {
  // Add the page method call as an onclick handler for the div.
  $("#Result").click(function() {
    $.ajax({
      type: "POST",
      url: "Default.aspx/GetDate",
      data: "{}",
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function(msg) {
        // Replace the div's content with the page method's return.
        $("#Result").text(msg.d);
      }
    });
  });
});

    <head>
  <title>Calling a page method with jQuery</title>
  <script type="text/javascript" src="jquery-1.2.6.min.js"></script>
  <script type="text/javascript" src="Default.js"></script>
</head>
<body>
  <div id="Result">Click here for the time.</div>
</body>
0 голосов
/ 12 декабря 2011

Поместите div и метку в UpdatePanel

...