【问题标题】:Select Button - CommandField on a GridView in ASP.NET选择按钮 - ASP.NET 中 GridView 上的 CommandField
【发布时间】:2011-06-27 12:09:37
【问题描述】:

我有以下代码在网页上创建 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

【问题讨论】:

  • 建议添加一个模板字段,并放置一个链接按钮,上面写着“选择”
  • @deostroll 感谢 deostroll 先生,但我不希望选择按钮甚至不是链接按钮。

标签: c# asp.net gridview


【解决方案1】:

删除特定行的选择:

在 RowDatBound 中

e.Row.Cells[0].Controls[0].Visible = false;

【讨论】:

    【解决方案2】:

    只要您不需要SelectButton,请尝试将其从Columns 部分中删除,并从您的GridView 声明中删除OnSelectedIndexChanged,并从后面的代码中删除GridView_EnCokSatilanUrunler_SelectedIndexChanged 方法。

    【讨论】:

    • 您使用哪个版本的 Asp.net?
    • 我发现aspx类有一个主题,使所有的网格都具有相同的结构并改变了它。谢谢Mp先生的帮助。
    【解决方案3】:

    告诉 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: 仓促写代码,不追求正确性。因此部分代码可能不正确。如果你谷歌你可能会找到上述正确的代码。以后有时间再编辑……

    【讨论】:

    • 谢谢deostroll先生,我发现aspx类有一个主题,使所有网格具有相同的结构并更改它。谢谢你的帮助,下次我会尝试你的代码.
    猜你喜欢
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 2013-07-27
    • 2015-11-11
    • 1970-01-01
    • 2018-11-27
    相关资源
    最近更新 更多