这是我想要做的。从下拉列表中选择一个值并移至该页面并进行回发。
1.aspx page
<asp:ListItem>a</asp:ListItem>
<asp:ListItem>b</asp:ListItem>
<asp:ListItem>c</asp:ListItem>
<asp:ListItem>d</asp:ListItem>
</asp:DropDownList>
Csfile:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DropDownList1.Enabled = true;
}
else
{
DropDownList1.Enabled = false;
DropDownList1.Attributes.Add("disable", "disable");
if (this.Session["Template"] == "a ")
{
this.DropDownList1.Attributes.Add("disable", "disable");
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (DropDownList1.SelectedValue == "a")
{
Response.Redirect("~/a.aspx");
DropDownList1.Attributes.Add("disable", "disable");
}
选择选项'a'重定向到页面a.aspx后,填写详细信息后返回页面1.aspx
这里我想禁用下拉列表,以便用户无法从该特定下拉列表中重新选择。我尝试了以上所有选项但没有任何效果。
答案 0 :(得分:0)
您始终启用下拉列表,因为在返回页面时,它不再是回发。回发仅在页面发布回自身时,而不是在其他页面发布时。
你的代码说“如果这是一个回发做这个,否则这样做”,你实际上从来没有打过“否则”。
更改它,使其类似于:
这假设您的HTML视图中没有Enabled="false"
下拉列表。如果不这样做,则默认情况下无需将Enabled=true;
设置为true
。
if (!IsPostBack)
{
if (this.Session["Template"] == "a ")
{
DropDownList1.Enabled = false;
}
}