这可能吗?我有一个 AJAX TabContainer,容器中有 3 个标签。在选项卡 #2 上,我有一个复选框,选中时会启用文本框。取消选中复选框时,应禁用文本框。

我在我的 ASP 表单中有这个代码:

    <AJAXControls:TabContainer runat="server" ID="tabContainer" Height="373" Width="900" >
        <AJAXControls:TabPanel ID="firstTab" HeaderText="First Tab" runat="server">
            <ContentTemplate>
                <asp:Label ID="Label1" runat="server">You are in the First tab.</asp:Label>
            </ContentTemplate>
        </AJAXControls:TabPanel>
        <AJAXControls:TabPanel ID="secondTab" HeaderText="Second Tab" runat="server">
            <ContentTemplate>
                <div>
                <asp:Panel ID="Panel1" runat="server" Height="70px" style="margin-left: 19px"
                    Width="860px" BorderStyle="Groove" BorderWidth="2px">
                        <table>
                            <tr>
                                <td width="170">Review Validated:</td>
                                <td width="50"><asp:CheckBox ID="chkRevVal" runat="server" Text=" " oncheckedchanged="chkRevVal_CheckedChanged" AutoPostBack="true" /></td>
                                <td width="40"></td>
                                <td width="170">Validation Comments:</td>
                                <td width="380" rowspan = "4"><asp:textbox id="txtValComm" runat="server" textmode="multiline" rows="4" Width="380px"></asp:textbox></td>
                            </tr>
                            <tr></tr>
                            <tr></tr>
                            <tr></tr>
                        </table>
                </asp:Panel>
            </ContentTemplate>
        </AJAXControls:TabPanel>
    </AJAXControls:TabContainer>

我的代码隐藏中有这个:
    protected void chkRevVal_CheckedChanged(object sender, EventArgs e)
    {
        if (chkRevVal.Checked == true)
        {

            this.txtValComm.Enabled = true;
            this.txtValComm.Focus();

        }
    }

问题是,当我选中该框时,TabContainer 每次都会返回到选项卡 #1。选中复选框后,有没有办法将其保留在选项卡 #2 上?

最佳答案

只需将 Panel1 控件放入带有 UpdateMode="Conditional" 的 UpdatePanel 中。顺便说一下,将 chkRevVal_CheckedChanged 重写为:

this.txtValComm.Enabled = chkRevVal.Checked;
if (txtValComm.Enabled)
    txtValComm.Focus();

关于c# - 当 AutoPostBack = true 时,防止在 AJAX TabContainer 上重新加载页面?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15979386/

10-13 02:31