ASP.NET,下拉列表和响应重定向

时间:2013-05-01 16:35:06

标签: asp.net drop-down-menu response.redirect

这是我想要做的。从下拉列表中选择一个值并移至该页面并进行回发。

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

这里我想禁用下拉列表,以便用户无法从该特定下拉列表中重新选择。我尝试了以上所有选项但没有任何效果。

1 个答案:

答案 0 :(得分:0)

您始终启用下拉列表,因为在返回页面时,它不再是回发。回发仅在页面发布回自身时,而不是在其他页面发布时。

你的代码说“如果这是一个回发做这个,否则这样做”,你实际上从来没有打过“否则”。

更改它,使其类似于:

这假设您的HTML视图中没有Enabled="false"下拉列表。如果不这样做,则默认情况下无需将Enabled=true;设置为true

if (!IsPostBack)    
    {    

              if (this.Session["Template"] == "a ")    
               {    
                  DropDownList1.Enabled = false;    
               }           

    }