asp.net中通过DropDownList的值去控制TextBox是否可编写的实现代码


在ASP.NET Web Forms中,您可以通过DropDownList控件的SelectedIndexChanged事件来控制TextBox控件的ReadOnly属性,从而实现根据DropDownList的选择来启用或禁用TextBox的编辑功能。以下是一个简单的示例代码:

aspx <!-- 在ASPX页面中 --> <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> <asp:ListItem Text="选项1" Value="1"></asp:ListItem> <asp:ListItem Text="选项2" Value="2"></asp:ListItem> <!-- 根据需要添加更多选项 --> </asp:DropDownList> <asp:TextBox ID="TextBox1" runat="server" ReadOnly="true"></asp:TextBox> <!-- 确保DropDownList控件的AutoPostBack属性设置为true,以便在用户更改选择时触发事件 --> <!-- 在ASPX.CS代码后端 --> protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { // 假设当DropDownList的Value为"1"时,TextBox可编辑 if (DropDownList1.SelectedValue == "1") { TextBox1.ReadOnly = false; // 启用编辑 } else { TextBox1.ReadOnly = true; // 禁用编辑 } }

在这个示例中,DropDownList控件有一个`OnSelectedIndexChanged`事件处理器`DropDownList1_SelectedIndexChanged`,它会在用户更改选择时自动触发。在事件处理器中,我们检查DropDownList的`SelectedValue`属性,并据此设置TextBox的`ReadOnly`属性。如果DropDownList的值为"1",则TextBox变为可编辑;否则,TextBox变为只读。

请注意,为了实现自动回发(AutoPostBack),DropDownList的`AutoPostBack`属性必须设置为`true`。这样,当用户更改选择时,页面会重新加载,并触发`DropDownList1_SelectedIndexChanged`事件处理器。