Asp.net 可见性设置为false时出现的文本框和下拉列表
我们有一个页面,允许用户使用十几个文本框和几个下拉菜单更新数据。一半的字段是永久可见的,其余字段是隐藏的。如果选中复选框,页面将显示其余字段 当第一次到达页面时,两个文本框和相关下拉列表不可见,其他字段也不可见,除非选中复选框 但是,使用更新功能(单击按钮),两个文本框和下拉列表与其他永久可见字段一起出现。奇怪的是,应该隐藏的字段对应的标签没有出现。另一点是,如果选中复选框,然后取消选中,则相关字段不可见 因此,问题似乎出在更新功能上,但我们无法确定问题所在。我们已经尝试在.ascx.cs文件中将可见性设置为false,但这与我们尝试的其他方法一样没有任何效果 下面的代码中是否有明显的遗漏 ascx:Asp.net 可见性设置为false时出现的文本框和下拉列表,asp.net,Asp.net,我们有一个页面,允许用户使用十几个文本框和几个下拉菜单更新数据。一半的字段是永久可见的,其余字段是隐藏的。如果选中复选框,页面将显示其余字段 当第一次到达页面时,两个文本框和相关下拉列表不可见,其他字段也不可见,除非选中复选框 但是,使用更新功能(单击按钮),两个文本框和下拉列表与其他永久可见字段一起出现。奇怪的是,应该隐藏的字段对应的标签没有出现。另一点是,如果选中复选框,然后取消选中,则相关字段不可见 因此,问题似乎出在更新功能上,但我们无法确定问题所在。我们已经尝试在.ascx.cs文件中
您可以尝试将代码移动到复选框的
CheckedChanged
事件。不过,这还不够。@wazz你能告诉我你还需要什么吗?
<asp:FormView ID="FormView1" runat="server" DataSourceID="odsQWER" DataKeyNames="Oid"
OnItemInserting="FormView1_ItemInserting" EnableModelValidation="true"
OnItemUpdating="FormView1_ItemUpdating">
...
<tr>
<td style="width: 200px">
<asp:Label ID="ContactFNameLabel" runat="server" Text="Vendor Contact (First Name):"
Visible="false"></asp:Label>
</td>
<td>
<asp:TextBox Width="400px" ID="ContactFNameTextBox" runat="server" Text='<%# Bind("FirstName") %>'
Visible="false"></asp:TextBox>
<asp:RequiredFieldValidator ID="ContactFNameValidator" runat="server" ControlToValidate="ContactFNameTextBox"
Display="Dynamic" ErrorMessage="Contact Name cannot be Blank" Visible="false"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td style="width: 200px">
<asp:Label ID="ContactLNameLabel" runat="server" Text="Vendor Contact (Last Name):"
Visible="false"></asp:Label>
</td>
<td>
<asp:TextBox Width="400px" ID="ContactLNameTextBox" runat="server" Text='<%# Bind("LastName") %>'
Visible="false"></asp:TextBox>
<asp:RequiredFieldValidator ID="ContactLNameValidator" runat="server" ControlToValidate="ContactLNameTextBox"
Display="Dynamic" ErrorMessage="Contact Last Name cannot be Blank" Visible="false"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td style="width: 200px">
<asp:Label ID="CountryLabel" runat="server" Text="Country:" Visible="false"></asp:Label>
</td>
<td>
<asp:DropDownList Width="405px" ID="CountryDropDownList" runat="server" AppendDataBoundItems="true"
DataSourceID="odsCountry" DataTextField="Name" DataValueField="Oid" SelectedValue='<%# Bind("CountryId") %>'
Visible="false">
<asp:ListItem Selected="true" Text="<--Select Here-->" Value="0"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="CountryValidator" runat="server" ControlToValidate="CountryDropDownList"
Display="Dynamic" ErrorMessage="Country Must be Selected" InitialValue="0"></asp:RequiredFieldValidator>
</td>
</tr>
...
<asp:Button ID="UpdateButton" runat="server" CausesValidation="true" CommandName="Update" OnClick="btnUpdateClick"
CssClass="button" Text="Update" Visible='<%# true %>' />
...
<asp:ObjectDataSource ID="odsQWER" runat="server" InsertMethod="AddRequest"
TypeName="BLL.TESTRequest" SelectMethod="GetRequest" OnInserting="odsQWER_Inserting"
UpdateMethod="UpdateRequest" OnUpdating="odsQWER_Updating" OnInserted="odsQWER_Inserted"
OnUpdated="odsQWER_Updated" OldValuesParameterFormatString="{0}">
...
protected void btnUpdateClick(object sender, EventArgs e)
{
CheckBox chk = (CheckBox)FormView1.FindControl("IsNewCheckBox");
FormView1.FindControl("ContactFNameTextBox").Visible = chk.Checked;
FormView1.FindControl("ContactFNameLabel").Visible = chk.Checked;
FormView1.FindControl("ContactFNameValidator").Visible = chk.Checked;
FormView1.FindControl("ContactLNameTextBox").Visible = chk.Checked;
FormView1.FindControl("ContactLNameLabel").Visible = chk.Checked;
FormView1.FindControl("ContactLNameValidator").Visible = chk.Checked;
FormView1.FindControl("StateDropDownList").Visible = chk.Checked;
FormView1.FindControl("StateLabel").Visible = chk.Checked;
}