2014-01-25 38 views
0

我有一個網格視圖,並設置允許頁面爲true.it工作正常,但是當我想隱藏某些列(如ID)時,頁碼被隱藏!網格視圖的頁碼被隱藏在RowDataBound

<asp:GridView ID="gvVisa" OnRowDataBound="gvVisa_RowDataBound" OnSelectedIndexChanged="gvVisa_SelectedIndexChanged" OnPageIndexChanging="gvVisa_PageIndexChanging" runat="server" AllowPaging="True" PageSize="5" AutoGenerateColumns="False" Font-Size="13px" Width="963px"> 
    <AlternatingRowStyle BackColor="#00CCFF" ForeColor="#333333" HorizontalAlign="Center" VerticalAlign="Middle" BorderStyle="None" /> 
    <Columns> 
     <asp:BoundField HeaderText="شناسه" DataField="vsiId"></asp:BoundField> 
     <asp:TemplateField HeaderText="تصویر "> 
      <ItemStyle Width="150" /> 
      <ItemTemplate> 
       <asp:Image ID="Image3" runat="server" ImageUrl='<%#Eval("visImageName") %>' Width="150" Height="100" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:BoundField HeaderText=" نام کشور" ItemStyle-Width="600px" DataField="visCountry"> 
      <ItemStyle Width="600px"></ItemStyle> 
     </asp:BoundField> 
     <asp:BoundField HeaderText="وضعیت نمایش " DataField="isActive"></asp:BoundField> 
     <asp:TemplateField HeaderText="وضعیت نمایش"> 
      <ItemStyle Width="100px" /> 
      <ItemTemplate> 
       <asp:Image ID="Image1" Width="24px" Height="24px" ImageUrl="~/images/false.png" Visible='<%# !(bool)Eval("isActive") %>' runat="server" /> 
       <asp:Image ID="Image2" Width="24px" Height="24px" ImageUrl="~/images/true.png" Visible='<%# Eval("isActive") %>' runat="server" /> 

      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="عملیات"> 
      <ItemStyle Width="100px" /> 
      <ItemTemplate> 
       <asp:LinkButton Text="تغییر وضعیت" Width="100px" CssClass="btns" ID="lnkSelect" runat="server" CommandName="Select" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
    <FooterStyle HorizontalAlign="Center" VerticalAlign="Middle" /> 
    <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" BackColor="#333333" ForeColor="White" /> 
    <RowStyle BackColor="White" ForeColor="#333333" HorizontalAlign="Center" VerticalAlign="Middle" /> 
</asp:GridView> 

結合DB:

protected void Page_Load(object sender, EventArgs e) 
{ 
    gvVisa.DataSource = from q in new Data.TouristDataContext().Visas select q; 
    gvVisa.DataBind(); 
} 

頁索引改變事件:

protected void gvVisa_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    gvVisa.PageIndex = e.NewPageIndex; 
} 

和行數據綁定事件無形一些列:

protected void gvVisa_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    e.Row.Cells[0].Visible = false; 
} 

我怎麼能解決這個問題?

enter image description here

+0

有你再在頁面索引綁定小時gridview的改變 –

+0

或者你可以簡單地設置在ASPX本身可見假的,因爲我看到有隱藏 –

回答

1

前設置的知名度,檢查它是否是的DataRow:

編輯:經過一些修改可以解決你在編輯的問題中提到的問題。

protected void gvVisa_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header) 
    { 
     // I would rather set display:hidden for ID 
     e.Row.Cells[0].Style.Add("display", "none"); 
     //e.Row.Cells[0].Visible = false; 
    }    
} 

if (e.Row.RowType == DataControlRowType.DataRowDataControlRowType.Pager)改爲if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header)

Here's測試項目我都用過。而從我的測試輸出看起來是這樣的:

enter image description here

+0

沒有條件我這樣做,但它不能解決我的問題,BTW感謝兄弟... –

+0

@Hamid Talebi - 你可以下載我的測試項目,並與你的比較。如果您有任何其他問題,您可以追加到您的問題。 – afzalulh

+0

首先感謝您的努力。我再次這樣做。您的解決方案我可以隱藏一列,但不能隱藏您在上圖中看到的列標題。並且我想要另一個概要!!!當我做它時對於單元格[0],所有列都向右移動,您可以再次看到上面的圖片(在解決方案中將所有列移到左側)!!請參閱我的問題的新版本... –