[英]Hiding linkbutton in template field in asp.net gridview control
所以我在圖片上有一個如下按鈕:
因此,當我按下此鏈接按鈕(位於網格控件內部的模板字段中)時,我想隱藏它並顯示一個組合框,而不是供用戶選擇狀態的組合框。
我為此創建了以下代碼:
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>
我在這里做錯了什么,有人可以幫我解決這個問題嗎?
謝謝。
如果我沒有記錯的話,這里的方法是BindGrid(),它將網格視圖帶到初始狀態,在該狀態下,您已將組合框的visible屬性設置為'false',嘗試刪除BindGrid()並檢查是否可以看到組合框。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.