更新面板不适用于Checkbox

时间:2017-08-04 11:13:48

标签: asp.net vb.net updatepanel

在下面的代码中将 asyncPostBackTrigger 更改为 PostBackTrigger ,从而导致整页回发。

但是当我们将触发器用作 asyncPostBackTrigger 时,下面的代码根本没有做任何事情。

有关我做错的任何建议吗?

System.IO.StreamReader objReader;
objReader = new System.IO.StreamReader(someTextFile);
string content = objReader.ReadToEnd();
objReader.Close();

content = content.Replace("Text1", "Replacetext1");

System.IO.StreamWriter objWriter;
objWriter = new System.IO.StreamWriter(someTextFile);
objWriter.Write(content);
objWriter.Close();
<%@ 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>

1 个答案:

答案 0 :(得分:1)

chkNotKnown位于UpdatePanel内,而txtDrCode位于UpdatePanel之外。您还要将chkNotKnown指定为asyncPostBackTrigger,这与UpdatePanel中已存在的内容相同。

因此要么将触发器更改为PostBackTrigger(导致完整的PostBack)

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

或将TextBox放在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>