2011-11-21 16 views
1

我想在c#代碼中將gridview列項目樣式設置爲false。怎麼做?如何在c中設置gridview列項目樣式#

iam從c#代碼綁定gridview,所以在.aspx頁面中沒有gridview中的列標籤。

我試過Gridview1.columns [5] .itemstyle.wrap = false。

,但它給了我像

ERROR指數誤差超出範圍。必須是非負的並且小於集合的大小

請幫助我。

我的代碼是

GridView1.DataKeyNames = new string[] { "MemberId" }; 
     if (Page.IsPostBack) 
     { 
      if (TextBox1.Text != "") 
      { 
       SqlConnection con = new SqlConnection(str); 
       con.Open(); 

       string search = TextBox1.Text + "%"; 


       string query = "Select DISTINCT Designation +' '+FName+ ' ' +MName+ ' ' +LName as Name," 
      + " HomePhone,MobileNo1," 
      + " UPPER(ResAddr1) ++' '+ UPPER(Resaddr2) ++' '+ UPPER(ResAddr3) ++' '+ UPPER(Resaddr4) ++' '+ UPPER(Resaddr5) ++' '+ UPPER(Resaddr6) ++' '+ Pincode ++' '+City as Address," 
      + " g.Category,f.GroupName as 'Group',Seats," 
      + " dbo.CONCATWTOTSHOW(d.MemberId,d.GID,d.CID)As SeatNo," 
      + " AmountExpected,AmountReceived,Discount,AmountPending,b.Remarks as Reference,b.SplRemarks, (d.MemberId)" 
      + " from Person_Master a INNER JOIN Member_Master b ON a.PersonId=b.PersonId" 
      + " LEFT JOIN Payment_Master c ON b.MemberId = c.MemberId" 
      + " INNER JOIN SeatAssign_Master d ON b.MemberId = d.MemberId" 
      + " INNER JOIN Year_Master e ON b.Year = e.Id" 
      + " INNER JOIN Group_Master f ON d.Gid=f.Gid" 
      + " INNER JOIN Category_Master g ON d.Cid=g.Cid " 
      + " where b.Year=" + DDLYear.SelectedValue.ToString() + " and FName + ' ' + LName like '" + search + "' and b.Active=1 and d.Active=1 "; 

       SqlCommand cmd = new SqlCommand(query, con); 
       SqlDataAdapter da = new SqlDataAdapter(cmd); 
       DataSet ds = new DataSet(); 
       da.Fill(ds); 

       if (ds.Tables[0].Rows.Count == 0) 
       { 
        GridView1.DataSource = ds; 
        GridView1.DataBind(); 
        Label1.Text = "No Records Found !!!"; 
        TextBox1.Text = ""; 

       } 
       else 
       { 
        GridView1.DataSource = ds; 
        GridView1.DataBind(); 
        Label1.Text = ""; 
        TextBox1.Text = ""; 

       } 
      } 

     } 

的.aspx代碼

<asp:GridView ID="GridView1" runat="server" style="width:120%;font-size:12px;font-family:Tahoma;" 
     BackColor="White" BorderColor="#CC9966" BorderStyle="None" 
     BorderWidth="1px" CellPadding="4" 
      onselectedindexchanged="GridView1_SelectedIndexChanged" 
      AutoGenerateDeleteButton="True" onrowdeleting="GridView1_RowDeleting" 
      onrowcreated="GridView1_RowCreated" >  
      <Columns> 
      <asp:CommandField ShowSelectButton="True" SelectText="Edit" /> 

      </Columns> 

     <FooterStyle BackColor="#FFFFCC" ForeColor="#330099" /> 
     <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" /> 
     <PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" /> 
     <RowStyle BackColor="White" ForeColor="#330099" /> 
     <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" /> 
     <SortedAscendingCellStyle BackColor="#FEFCEB" /> 
     <SortedAscendingHeaderStyle BackColor="#AF0101" /> 
     <SortedDescendingCellStyle BackColor="#F6F0C0" /> 
     <SortedDescendingHeaderStyle BackColor="#7E0000" /> 
    </asp:GridView> 
+0

由於錯誤提示您的列索引超出範圍。僅供參考,數組總是基於0的索引。發佈您的實施。 –

+0

@SandeepGB,我在databinding()之後應用了上面的代碼,但它會給我這樣的錯誤.wt我應該怎麼做? –

+0

在調試模式下運行並查看「Gridview1.columns [5]」是否有效(非空)。還要檢查「Gridview1.columns」 –

回答

1

數據應在提供的數據源存在,並且列數必須大於或等於指數展開列。

GridView1.DataSource = ds.Tables[0]; 
GridView1.DataBind(); 
if (ds.Tables[0].Rows.Count > 0) 
{ 
    int numberOfColumn = ds.Tables[0].Columns.Count; 
    if (numberOfColumn >= 5) // Since the 5th column you want to unwrap 
    GridView1.Columns[5].ItemStyle.Wrap = false; 
} 
+0

中聲明它們時,我使用它的代碼vb.net版本然後它創建像索引超出範圍的錯誤。必須是非負數且小於集合的大小。 – Developer

+0

在您提供的DataSource中應該有數據,如果數據總是可能不可用,則將檢查點設置爲(ds.Tables.Count> 0){}。另外,如果數據可用,並且如果要將樣式放在網格視圖的第6列(如給出示例),那麼您應該使用GridView1.Columns [5],索引爲0,因此請檢查給定的列索引,然後存在列號。希望你明白@Singh謝謝。 –

+0

問題沒有解決。 – Developer

0

維韋克,

首先,你檢查多少列在您的gridview.Once在那裏你澄清這一點,那麼你檢查

GridView1.datasource = ds.tables[0]; 
Gridview1.databind(); 
//this will give you how many columns are there in GridView. 
int i = GridView1.Columns.Count; 
Gridview1.columns[5].itemstyle.wrap = false ; 

如果您收到類似索引的錯誤超出範圍。必須爲非負且小於集合的大小意味着你是給列數比現有的列的詳細

+0

在這種情況下,我= 1,我有一個列在.aspx頁面,列數必須返回確切的列,我已經綁定..噸現在做? –

+0

有問題,你提到你沒有列標籤.aspx page.You綁定代碼後面。現在你告訴你在.aspx頁面有一列。可以發佈你的代碼,這樣我就可以以幫助您 – prema

+0

對不起,但我只有一列編輯作爲命令字段..我編輯我的Q. –

相關問題