如何使用 asp.net 中的另一个下拉列表更改下拉列表选定的索引和可见性
How to change drop down list selected index and visibility using another drop down list in asp.net?
我的 asp.net 应用程序中有一个这样的下拉列表,
<asp:DropDownList runat="server" ID="ddlChanges" CssClass="selectstyle" onchange="javascript:ddlChangesChanged();">
<asp:ListItem Text="-- Select -- " Value="-1"></asp:ListItem>
<asp:ListItem Text="Status Change" Value="1"></asp:ListItem>
<asp:ListItem Text="Product Name Change" Value="2"></asp:ListItem>
<asp:ListItem Text="Category Change" Value="3"></asp:ListItem>
</asp:DropDownList>
因此,当用户从列表中选择"状态更改"时,将显示另一个具有以下值的下拉列表,
<asp:DropDownList runat="server" ID="ddlStatus" CssClass="selectstyle" Style="visibility: hidden;">
<asp:ListItem Text="-- Select -- " Value="-1"></asp:ListItem>
<asp:ListItem Text="Pending" Value="1"></asp:ListItem>
<asp:ListItem Text="Fixed" Value="2"></asp:ListItem>
<asp:ListItem Text="Cancelled" Value="3"></asp:ListItem>
</asp:DropDownList>
<asp:Button ID="btnUpdate" CssClass="selectstyle" runat="server" Text="Update" OnClick="btnUpdate_Click"></asp:Button>
如果用户没有从下拉列表中选择任何值(ddlStatus),我将在btnUpdate点击事件中使用JavaScript显示一条警报消息("您必须选择状态")。
if (this.ddlStatus.SelectedItem.Value.Trim() == "-1")
{
string script = "<script type='"text/javascript'">alert('You must select a status.');</script>";
ClientScript.RegisterClientScriptBlock(this.GetType(), "Alert", script);
}
但是在此之后,我的页面刷新并且下拉列表 ddlChanges 将"状态更改"(先前选择的项目)作为所选项目,下拉列表 (ddlStatus) 被隐藏。我希望 ddlChanges 下拉列表具有 - 选择 - 因为所选项目和 ddlStatus 应该是可见的。
我该怎么做?
您正在执行完全回发(客户端上的所有更改都会重置,回发输入值除外) - 因此,要么执行客户端(JavaScript)验证(最佳选项),要么切换到 Ajax 部分回发(更快选项),或者干脆更改此(最慢选项):
if (this.ddlStatus.SelectedItem.Value.Trim() == "-1")
{
ddlStatus.Attributes["style"] = null;
string script = "<script type='"text/javascript'">alert('You must select a status.');</script>";
ClientScript.RegisterClientScriptBlock(this.GetType(), "Alert", script);
}
btnUpdate 单击事件引发服务器端代码,并且服务器不知道用户在客户端上选择了什么。 一种选择是使用客户端验证来避免回发并在客户端保留选择。
相关文章:
- 下拉列表在使用z索引放置在前面后停止工作
- 如何使用 asp.net 中的另一个下拉列表更改下拉列表选定的索引和可见性
- 下拉列表中的选定索引在未选择任何值时引发错误
- 在JavaScript中更改下拉列表索引后,ASP.Net提交按钮单击事件不起作用
- 在索引更改中选择的下拉列表无效!!由于引导
- 下拉列表索引更改时日期选取器不起作用
- 选择下拉列表值而不是第一个索引的任何解决方案
- 从数组 Jquery 中获取下拉列表的选定索引
- 在索引上显示下拉列表更改了另一个下拉列表 .net 2.0
- 下拉列表选定的索引更改事件
- RadGrid-使用javascript获取下拉列表索引
- 单击按钮后,下拉列表中选定的索引颜色必须保持不变
- 按值获取下拉列表/组合框的索引(客户端)
- 下拉列表未触发索引更改事件
- 如何找到给定文本的下拉列表的索引
- 使用jQuery设置动态下拉列表(DOM)的选定索引
- 如何使用JQuery通过选项列表索引号改变JQuery-select2下拉列表的选择值
- HTML JavaScript下拉列表已选择索引
- jquery后下拉列表的选定索引不起作用
- 下拉菜单 - asp.net 检测下拉列表.选定索引按钮单击后更改(禁用 JS)