2014-11-21 7 views
0

Так у меня есть кнопка следующие на картинке:Скрытие LinkButton в поле шаблона в управлении GridView asp.net

enter image description here Так что, когда я нажимаю эту кнопку ссылки (которая находится в поле шаблона внутри сеточного управления) , Я хотел бы скрыть его и показать вместо него поле со списком, где пользователь может получить статус.

Я создал следующий код для этого:

if (e.CommandName == "IzmjeniStatus") 
       { 
        string[] arg = e.CommandArgument.ToString().Split(';'); 
        int index = Convert.ToInt32(arg[1].ToString()); 
// first locating the combo box inside of template field 
        DropDownList ComboStatus = (DropDownList)gridKorisnici.Rows[index].FindControl("DropDownList1"); 
// then locating the button 
        LinkButton btnIzmjeniStatus = (LinkButton)gridKorisnici.Rows[index].FindControl("btnStatusKorusnika"); 
        btnIzmjeniStatus.Visible = false; 
        ComboStatus.Visible = true; 
// once the button is pressed, hide the button and show the dropdown list 

        int KupacID = Convert.ToInt32(arg[0].ToString()); 
        hsp_Kupci_SelectByID_Result k = ServisnaKlasa.KupacByID(KupacID); 
        if(k.Status==true) 
        { 
         ServisnaKlasa.UpdateStatusKorisnika(KupacID, false); 
        } 
        else 
        { 
         ServisnaKlasa.UpdateStatusKorisnika(KupacID, true); 
        } 
        BindGrid(); 
       } 

Это ASPX код сетки:

<asp:GridView ID="gridKorisnici" AutoGenerateColumns="false" AllowPaging="true" PageSize="20" runat="server" OnRowCommand="gridKorisnici_RowCommand" OnRowDataBound="gridKorisnici_RowDataBound" OnPageIndexChanging="gridKorisnici_PageIndexChanging"> 
     <Columns> 
      <asp:BoundField DataField="Ime" HeaderText="Ime"/> 
      <asp:BoundField DataField="Prezime" HeaderText="Prezime" /> 
      <asp:BoundField DataField="Email" HeaderText="Email"/> 
      <asp:CheckBoxField DataField="Popust" HeaderText="Popust"/> 
      <asp:BoundField DataField="IznosPopusta" HeaderText="Iznos popusta(%)"/> 
      <asp:CheckBoxField DataField="Status" HeaderText="Aktivan"/> 
      <asp:TemplateField HeaderText="Unos popusta(%)"> 
       <ItemTemplate> 
        <asp:TextBox ID="txtPopust2" runat="server"></asp:TextBox> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField> 
       <ItemTemplate> 
        <asp:LinkButton ID="btnPopust" runat="server" Title="Aktivacija popusta" CommandName="AktivirajPopust" CommandArgument='<%#Eval("KupacID") + ";" +((GridViewRow) Container).RowIndex%>' ><img src="../images/1popust.png" /></asp:LinkButton> 
       </ItemTemplate> 
      </asp:TemplateField> 
       <asp:TemplateField> 
       <ItemTemplate> 
        <asp:LinkButton ID="btnDeaktivirajPopust" Title="Deaktivacija popusta" runat="server" CommandName="DeaktivirajPopust" CommandArgument='<%# Eval("KupacID") %>'><img src="../images/1popustminus.png" /></asp:LinkButton> 
       </ItemTemplate> 
      </asp:TemplateField> 
       <asp:TemplateField> 
       <ItemTemplate> 
        <asp:LinkButton ID="btnStatusKorusnika" title="Izmjeni status" runat="server" CommandName="IzmjeniStatus" CommandArgument='<%#Eval("KupacID") + ";" +((GridViewRow) Container).RowIndex%>'><img src="../images/1status.png" /></asp:LinkButton> 
        <asp:DropDownList ID="DropDownList1" Visible="false" runat="server"></asp:DropDownList> 
       </ItemTemplate> 
      </asp:TemplateField> 
       <asp:TemplateField> 
       <ItemTemplate> 
        <asp:LinkButton ID="btnHistorijaPristupa" title="Historija pristupa" runat="server" CommandName="HistorijaPristupaCommand" CommandArgument='<%# Eval("KupacID") %>'><img src="../images/1logovi.png" /></asp:LinkButton> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 

Что я делаю неправильно здесь, может кто-то помочь мне с этим? ?

Спасибо.

ответ

1

Если я не ошибаюсь, метод BindGrid() является проблемой здесь, он приносит gridview в начальное состояние, в котором свойство видимости поля со списком задано «false», попробуйте удалить BindGrid() и проверьте если вы можете видеть combobox.

Смежные вопросы