簡體   English   中英

在ASP.NET中的GridView上選擇Button - CommandField

[英]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更改為

<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();
        }

我只想要一個沒有SelectButtonGridView

刪除某行的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM