0

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

1.aspx页面

<asp:ListItem>a</asp:ListItem>
     <asp:ListItem>b</asp:ListItem>
     <asp:ListItem>c</asp:ListItem>
     <asp:ListItem>d</asp:ListItem>
</asp:DropDownList>

文件:

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

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

4

1 回答 1

0

您始终启用下拉列表,因为在移回页面时它不再是回发。回发仅在页面回发给自己时,而不是在另一个页面发回给它时。

您的代码说“如果是回发,则执行此操作,否则执行此操作”,而您实际上从未点击过“否则”。

更改它,使其类似于:

这是假设您Enabled="false"的 HTML 视图中没有下拉列表。Enabled=true;如果你不这样做,那么true默认情况下不需要设置。

if (!IsPostBack)    
    {    

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

    }
于 2013-05-01T16:43:41.083 回答