2017-08-04 88 views
0

在下面的代碼中更改asyncPostBackTriggerPostBackTrigger導致整個頁面回發。更新面板不工作對於複選框

但是,當我們使用觸發器作爲asyncPostBackTrigger時,下面的代碼並沒有做任何事情。

關於我在做什麼的任何建議是錯誤的?

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server" /> 
      <asp:UpdatePanel runat="server" ID="UpdatePanel_1" > 

       <ContentTemplate> 
        <asp:CheckBox ID="chkNotKnown" runat="server" AutoPostBack="True" 
            Text="(Not Known)" OnCheckedChanged="chkNotKnown_CheckedChanged"/> 
       </ContentTemplate> 

       <Triggers> 
        <asp:asyncPostBackTrigger ControlID="chkNotKnown"/> 
       </Triggers> 

      </asp:UpdatePanel> 

     <asp:TextBox ID="txtDrCode" runat="server" OnFocus="this.style.borderColor='red'" OnBlur="this.style.borderColor=''"></asp:TextBox> 
    </form> 
</body> 

</html> 

Partial Class _Default 
    Inherits System.Web.UI.Page 
    Protected Sub chkNotKnown_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles chkNotKnown.CheckedChanged 
     With txtDrCode 
      If chkNotKnown.Checked Then 
       .Text = "Not Known" 
       .Enabled = False 
      Else 
       .Text = "" 
       .Enabled = True 
      End If 
     End With 
    End Sub 
End Class 

回答

1

chkNotKnown是UpdatePanel內,而txtDrCode是它的外部。你也指定chkNotKnown作爲asyncPostBackTrigger,這與UpdatePanel中已經存在的東西是一樣的。

觸發因此,要麼更改爲PostBackTrigger(導致完全回發)

<Triggers> 
    <asp:PostBackTrigger ControlID="chkNotKnown" /> 
</Triggers> 

,或將文本框在UpdatePanel

<asp:UpdatePanel runat="server" ID="UpdatePanel_1"> 
    <ContentTemplate> 

     <asp:CheckBox ID="chkNotKnown" runat="server" AutoPostBack="True" 
      Text="(Not Known)" OnCheckedChanged="chkNotKnown_CheckedChanged" /> 

     <asp:TextBox ID="txtDrCode" runat="server"></asp:TextBox> 

    </ContentTemplate> 
</asp:UpdatePanel> 
+0

夢幻裏面!完全解決了我的問題:) – Sixthsense