2013-11-19 2 views
0

Я пытаюсь отключить выпадающее меню в таблице. Например, когда администратор просматривает любые новые документы, а затем выбирает значение из раскрывающегося списка, т.е. aprove/reject, когда он выбирает и нажимает кнопку, тогда это выпадающее меню должно быть отключено, а затем когда amdin снова просматривать новые документы, то в этом раскрывающемся списке должен Б.Т. включить, пока администратор утвердить/отклонить этот документ ..... как я сделал это ..dropdown disable in asp.net

вот код ...

protected void Repeater2_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    DropDownList ddldrop = e.Item.FindControl("DropDownList4") as DropDownList; 
    HiddenField hfDepartmentId = Repeater2.FindControl("hfDepartmentId") as 
     HiddenField; 

    if (ddldrop != null && hfDepartmentId != null && hfDepartmentId.Value != 
     string.Empty && hfDepartmentId.Value.Trim() != "3") 
    { 
     ddldrop.SelectedValue = hfDepartmentId.Value.Trim(); 
     ddldrop.Enabled = false; 
    } 
} 

HTML код

<div class="CSSTableGenerator"> 
       <table border="0" width="100%" cellpadding="0" cellspacing="0" 
      id="results"> 
        <asp:Repeater ID="Repeater2" 
        OnItemCommand="Repeater2_ItemCommand" 
         runat="server" onitemdatabound="Repeater2_ItemDataBound"> 
         <HeaderTemplate> 
          <tr> 
           <%--<td> 


           </td>--%> 
           <td> 
            DocumentID 
           </td> 
           <td> 
            DocName 
           </td> 
           <td> 
            File Name 
           </td> 
           <td> 
            Document 
           </td> 
           <td> 
            Department 
           </td> 
           <td> 
            Status 

           </td> 

          </tr> 
         </HeaderTemplate> 
         <ItemTemplate> 
          <tr> 
           <%-- <td> 

            <asp:HiddenField Id="DocId" runat="server"> 
           </asp:Label/> 
            <%#DataBinder.Eval(Container.DataItem, "DocID")%> 



           </td>--%> 
           <td> 
            <%--<asp:Label Id="DocId" runat="server"> 
          </asp:Label> 
            <%#DataBinder.Eval(Container.DataItem, 
            "DocID")%>--%> 
            <asp:Label Id="DocId" 
        text='<%#DataBinder.Eval(Container.DataItem, "DocID")%>' 
      runat="server"> 
            </asp:Label> 
           </td> 
           <td> 
           <asp:Label Id="DocName" runat="server"></asp:Label> 
            <%#DataBinder.Eval(Container.DataItem, "DocName")%> 
           </td> 
           <td> 
           <asp:Label Id="Uploadfile" runat="server"></asp:Label> 

            <%#DataBinder.Eval(Container.DataItem, 
             "Uploadfile")%> 
           </td> 
           <td> 
           <asp:Label Id="DocType" runat="server"></asp:Label> 
            <%#DataBinder.Eval(Container.DataItem, "DocType")%> 
           </td> 
           <td> 
           <asp:Label Id="DepType" runat="server"></asp:Label> 
            <%#DataBinder.Eval(Container.DataItem, "DepType")%> 
           </td> 
          <%-- <td> 

         <asp:Label ID="Label1" runat="server" Text='<%# 
          Eval("ApproveID") %>' Visible = "false" /> 
            <%#DataBinder.Eval(Container.DataItem, 
           "ApproveID")%> 
           </td>--%> 

          <td> 


         <asp:Label ID="lblCountry" runat="server" Text='<%# 
        Eval("ApproveID") %>' Visible = "false" /> 
          <asp:HiddenField ID="hfDepartmentId" runat="server" 
        Value='<%# Eval("ApproveID") %>' /> 


        <asp:DropDownList ID="DropDownList4" runat="server" 
       EnableViewState="true" class="vpb_dropdown" DataTextField="ApproveType" 
          DataValueField="ApproveID" AutoPostBack="true" 
        OnSelectedIndexChanged="DropDownList4_SelectedIndexChanged"> 
         <asp:ListItem Text="Pending" selected="selected" Value="3"> 
          </asp:ListItem> 
         <asp:ListItem Text="Approve" Value="1"></asp:ListItem> 
         <asp:ListItem Text="Reject" Value="2"></asp:ListItem> 
        </asp:DropDownList> 
        </td> 
        </tr> 
        </ItemTemplate> 
         </asp:Repeater> 
         </table>  

      <asp:Label ID="Supvisor" runat="server" ></asp:Label><br /> 
     <asp:Button ID="Button1" runat="server" Text="Submit" onclick="B 
+0

В чем проблема? Код, который вы опубликовали, показывает, что выпадающий список отключен, если 'hfDepartmentId' не равен' 3', но я предполагаю, что раскрывающийся список становится снова включенным, прежде чем это произойдет, правильно? –

+0

да ... но этот код не работает ... выпадающее меню всегда включено ... – user2931015

+0

@ user2931015 Пожалуйста, не пишите длинные предложения. Это действительно трудно читать. – Win

ответ

0

Основываясь на разметке, которую вы опубликовали, я не думаю, что утверждение «оно всегда равно нулю» является правильным.

Измените метод похож на:

protected void Repeater2_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListItemType.Item) 
    { 
     DropDownList ddldrop = e.Item.FindControl("DropDownList4") as DropDownList; 
     HiddenField hfDepartmentId = Repeater2.FindControl("hfDepartmentId") as HiddenField; 

     if (ddldrop != null && hfDepartmentId != null && hfDepartmentId.Value != 
     string.Empty && hfDepartmentId.Value.Trim() != "3") 
     { 
      ddldrop.SelectedValue = hfDepartmentId.Value.Trim(); 
      ddldrop.Enabled = false; 
     } 
    } 
} 

По сути, это тесты, чтобы увидеть, если ItemType является фактическим Item или Header строки. Если это строка Header, мы просто хотим пропустить ее, так как не будет DropDownList4.

Затем перейдите и установите точку останова внутри, чтобы посмотреть, что происходит.

+0

это показать мне всегда пустой – user2931015

+0

@ user2931015: см обновить – NotMe

+0

я реализовать ур код, но он показывает мне упасть вниз всегда включается. – user2931015