2013-02-20 31 views
6

(örneğin gizli değerine dayalı rowcolor ayarlamak için)onrowdatabound kullanarak gridview asp.net C# Gizli hücrelerden değerleri almak

sonra onu bu

<asp:GridView ID="Timeevents" runat="server" 
     OnRowDataBound="Timeevents_RowDataBound" 
     OnRowCommand = "Timeevents_RowCommand" 
     AutoGenerateColumns="False"> 
     <columns> 
     <asp:BoundField DataField="CaseID" HeaderText="CaseID" Visible = "False" /> 
     <asp:BoundField DataField="caseworkerID" HeaderText="CwID" Visible = "False" /> 
     <asp:BoundField DataField="EventTypeID" HeaderText="EvTypeID" Visible = "False" /> 
     <asp:BoundField DataField="CaseWorker" HeaderText="Case Worker" /> 
     <asp:BoundField DataField="EventDate" HeaderText="Event Date" /> 
     <asp:BoundField DataField="Code" HeaderText="Code" /> 
     <asp:BoundField DataField="TotalUnits" HeaderText="Total Units" /> 
     <asp:BoundField DataField="EventType" HeaderText="Event Type" /> 
     <asp:BoundField DataField="UnitCost" HeaderText="Unit Cost" /> 
     <asp:BoundField DataField="TotalCost" HeaderText="Total Cost"/> 
     <asp:TemplateField HeaderText="ADD"> 
       <ItemTemplate> 
        <asp:Button ID="AddUnit" runat="server" Text=" +1 " 
        CommandName="AddUnit" 
        CommandArgument='<%# Eval("CaseID")+ ";" + Eval("CaseworkerID")+ ";" + Eval("EventDate")+ ";" + Eval("EventTypeID")+ ";" + ("1")%>'/> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
</asp:GridView> 

gibi hücrelerini gizledi GRIDVIEW varsa kullanarak onRowDatabound İşleyicisi'ndeki bu değerleri almak mümkün görünmektedir

i görünür olarak BoundFields herhangi ayarlayarak değil, bu sorunu gidermek var ([2] .Text e.Row.Cells) = "False" yüzden görebilir = varsayılan olarak "true". onRowDatabound Handler'da gerekli olan değerleri arkadaki kodda alıp sonra da görünmez hale getiriyorum. bunun gibi.

protected void Timeevents_RowDataBound(object sender, GridViewRowEventArgs e) 
     { 
      if (e.Row.RowType == DataControlRowType.DataRow) 
      { // just for the datarows 
       int a = (int.Parse(e.Row.Cells[2].Text)); 

       if (a % 2 == 0) 
       { 
        e.Row.BackColor = System.Drawing.Color.Gainsboro; 
       } 
       else 
       { 
        e.Row.BackColor = System.Drawing.Color.White; 
       } 
      } 
      // end if so this applies to header and data rows 
      e.Row.Cells[0].Visible = false; 
      e.Row.Cells[1].Visible = false; 
      e.Row.Cells[2].Visible = false; 

     } 

oldukça yeşil olan bu işleyici can gizli veri sınırlama alanları görmek olduğunu anlamaya yuvarlak birçok forum ve hata ayıklama googling bana iyi bir anlaşma aldı ve ben dayalı rowcolour nasıl ayarlanacağını cevap bulmak için görünüyor olabilir gizli bir alan bu yüzden ben sadece bu kadar

bulmak için bu kadar post it herhangi bir uzmanlar belki de bazı kod/yorum ekleyebilirler Şerefe!

cevap

4

Ben here

// the underlying data item is a DataRowView object. 
    DataRowView rowView = (DataRowView)e.Row.DataItem; 

    // Retrieve the EventTypeID value for the current row. 
    int a = Convert.ToInt32(rowView["EventTypeID"]); 
+2

Teşekkür V Kadar Kaf ... diyor gibi DataItem kullanabilirsiniz düşünüyorum ve beni ben bir çokbilmiş pantolon falan olduğunu düşünerek vardı !! – Sonny123