[英]Select Button - CommandField on a GridView in ASP.NET
我有以下代碼在網頁上創建一個GridView。我正在嘗試禁用SelectButton或使其不可見,或只是刪除它。我試過
AutoGenerateSelectButton="false"
和
<asp:CommandField SelectText="Seç" Visible="false"
ShowSelectButton="True" />
我甚至刪除了這一部分
<Columns>
<asp:CommandField SelectText="Seç" ShowSelectButton="True" />
</Columns>
他們都沒有工作,SelectButton仍在那里。 我試着將它的SelecText
更改為Aç
<asp:CommandField SelectText="Aç" ShowSelectButton="True" />
這也行不通。我也試過了
ShowSelectButton="False" and it didn't change anything.
<asp:UpdatePanel ID="UpdatePanelEnCokSatilanUrunler" runat="server">
<ContentTemplate>
<asp:Panel ID="PanelEnCokSatilanUrunler" runat="server"
GroupingText="En Çok Satılan Ürünler"
BorderWidth="1" Font-Bold="true">
<table class="style1">
<tr>
<td>
<asp:GridView ID="GridView_EnCokSatilanUrunler"
runat="server"
OnRowDataBound="GridView_EnCokSatilanUrunler_RowDataBound"
Font-Bold="false"
OnSelectedIndexChanged="GridView_EnCokSatilanUrunler_SelectedIndexChanged"
AllowSorting="true"
OnSorting="GridView_EnCokSatilanUrunler_Sorting">
<Columns>
<asp:CommandField SelectText="Seç"
ShowSelectButton="True"/>
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
這就是我在aspx.cs中所擁有的,它對SelectButton
沒有任何作用
protected void GridView_EnCokSatilanUrunler_SelectedIndexChanged(object sender, EventArgs e)
{
}
protected void GridView_EnCokSatilanUrunler_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
((LinkButton)e.Row.Cells[1].Controls[0]).Text = "Ürün No";
((LinkButton)e.Row.Cells[2].Controls[0]).Text = "Ürün Adı";
((LinkButton)e.Row.Cells[3].Controls[0]).Text = "Satış Miktarı";
((LinkButton)e.Row.Cells[4].Controls[0]).Text = "Ürün Durum";
((LinkButton)e.Row.Cells[5].Controls[0]).Text = "Ürün Tipi";
((LinkButton)e.Row.Cells[6].Controls[0]).Text = "Marka";
((LinkButton)e.Row.Cells[7].Controls[0]).Text = "Model";
}
else if (e.Row.RowType == DataControlRowType.DataRow)
{
}
}
protected void GridView_EnCokSatilanUrunler_Sorting(object sender, GridViewSortEventArgs e)
{
if (EnCokSatilanUrunlerSortColumn == e.SortExpression)
{
if (EnCokSatilanUrunlerSortDirection)
EnCokSatilanUrunlerSortDirection = false;
else if (!EnCokSatilanUrunlerSortDirection)
EnCokSatilanUrunlerSortDirection = true;
}
else
EnCokSatilanUrunlerSortDirection = true;
EnCokSatilanUrunlerSortColumn = e.SortExpression;
EnCokSatilanUrunlerPageIndex = 0;
GridView_EnCokSatilanUrunler.SelectedIndex = -1;
}
void EnCokSatilanUrunlerGridDoldur()
{
GridView_EnCokSatilanUrunler.DataSource = DAL.raporx.DAOUrunx.GetEnCokSatilanBesUrun(
DateTime.Now - new TimeSpan(30, 0, 0, 0),
DateTime.Now
);
GridView_EnCokSatilanUrunler.DataBind();
}
我只想要一個沒有SelectButton
的GridView
。
刪除某行的select:
在RowDatBound中
e.Row.Cells[0].Controls[0].Visible = false;
只要你不需要SelectButton
嘗試從Columns
部分刪除它並從GridView
聲明中刪除OnSelectedIndexChanged
並從后面的代碼中刪除GridView_EnCokSatilanUrunler_SelectedIndexChanged
方法。
告訴Gridview不要渲染選擇按鈕
gv.AutoGenerateSelectButton = false;
接下來,添加模板字段。 並在其中添加一個鏈接按鈕。
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lbtnSelect" Command="cmdSelect" Text="Select" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
您需要gridview的RowDataBound事件的處理程序。 您可以在標記或代碼中執行此操作。 我已經通過代碼展示了如何做到這一點:
gv.RowDataBound += new EventHandler(OnRowDataBound);
事件接收器定義如下:
void OnRowDataBound(object sender, RowDataBoundEventArgs e)
{
if(e.Row.RowType == RowType.Row)
{
LinkButton lbtnSelect = (LinkButton) e.Row.FindControl("lbtnSelect");
//now hide or show as per you logic
}
}
ps:匆忙編寫代碼,沒有針對正確性。 因此,部分代碼可能不正確。 如果您谷歌,您可能會找到上述正確的代碼。 我有空的時候會編輯...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.