2011-01-30 2 views
0

Как предотвратить содержимое UpdatePanel из PostBack, которое произошло на всей странице?Как предотвратить обновление содержимого UpdatePanel с PostBack на странице?

У меня есть следующий код:

<head runat="server"> 
    <title></title> 

    <script type="text/C#" runat="server"> 
     // I don't want it to call this event handler 
     // untill I update the UpdatePanel manually by UpdatePanel1.Update(); 
     protected void TextBox2_Load(object sender, EventArgs e) 
     { 
      ((TextBox)sender).Text = DateTime.Now.ToString(); 
     } 

     protected void Unnamed1_Click(object sender, EventArgs e) 
     { 
      TextBox1.Text = DateTime.Now.ToString(); 
     } 
    </script> 

</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
     </asp:ScriptManager> 
     <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server"> 
      <ContentTemplate> 
       <asp:TextBox ID="TextBox2" runat="server" OnLoad="TextBox2_Load"> 
       </asp:TextBox> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
     <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Unnamed1_Click" /> 
     <asp:TextBox ID="TextBox1" runat="server" /> 
    </div> 
    </form> 
</body> 
</html> 

Предыдущий код будет писать в TextBox2, несмотря на это, существует внутри UpdatePanel с Conditional для UpdateMode.

Я хочу, чтобы он обновлялся только при вызове UpdatePanel1.Update();

Любая помощь!

ответ

-1

Попробуйте использовать IsInAsyncPostBack:

protected void TextBox2_Load(object sender, EventArgs e) 
{ 
    if (ScriptManager1.IsInAsyncPostBack == true) 
     ((TextBox)sender).Text = DateTime.Now.ToString(); 
1

Если вы положили Button1 и textBox1 в том же UpdatePanel как TextBox2, это должно дать вам нужную функциональность.

Если вы хотите сохранить их в отдельных UpdatePanels, вы можете, но вам нужно указать триггер на UpdatePanel1 для события Unnamed1_Click (или вызвать UpdatePanel1.Update() в коде).

Смежные вопросы