Come posso verificare se la prima colonna contiene il testo "data"?
dato che in quel caso vorrei applicare una modifica nella riga ....
Grazie
Come posso verificare se la prima colonna contiene il testo "data"?
dato che in quel caso vorrei applicare una modifica nella riga ....
Grazie
Che controllo stai usando?
Che tipo di colonna è quella di cui vuoi ricavare il valore?
Vorrei capire se la colonna contiene il testo "data"...
le colonne contengono testo...
protected void MyDataGrid_OnItemDataBound(object sender,
DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
// come faccio il controllo sulla prima colonna???
Dipende che tipo di colonna è, se è una BoundColumn allora lo trovi direttamente nel testo della cella, se è una TemplateColumn conterrà un controllo (es TextBox) che devi ricavare con il metodo FindControl e poi leggerne il valore.
il datagrid ha questa struttura
<asp:datagrid id="MyDataGrid" CssClass="Grid" runat="server" Width="950px" AutoGenerateColumns="False"
HorizontalAlign="Center" DataKeyField="Data" AllowSorting="True" CellSpacing="1" CellPadding="3"
BackColor="White" BorderColor="White" BorderWidth="2px" GridLines="None" BorderStyle="Ridge">
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#9471DE"></SelectedItemStyle>
<ItemStyle ForeColor="Black" BackColor="#DEDFDE"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#E7E7FF" BackColor="#698696"></HeaderStyle>
<FooterStyle ForeColor="Black" BackColor="#C6C3C6"></FooterStyle>
<PagerStyle NextPageText="Succ" Font-Size="XX-Large" Font-Names="Arial" PrevPageText="Prec"
HorizontalAlign="Right" ForeColor="Black" Position="TopAndBottom" BackColor="#C6C3C6" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
da codice creo il datatable e lo carico nel datagrid
//lego la griglia al dt clone creato
MyDataGrid.DataSource = TmpPlanning.DefaultView;
MyDataGrid.DataBind();
Grazie ancora
Non vedo la definizione delle colonne.
Comunque..
Puoi definire un metodo pubblico e all'interno della colonna lo richiami
Nella pagina aspx
Nel codebehindcodice:<asp:TemplateColumn> <ItemTemplate> <%# CheckMe(DataBinder.Eval(Container.DataItem, "Nomecampo"))%> </ItemTemplate> </asp:TemplateColumn>
Se è solo una questione di visualizzare o meno un'informazione lascia questo compito alla query piuttosto che alla pagina. Semplifichi la vita a te stessa ed rendi la pagina più veloce!codice:Public Function CheckMe(ByVal a As String) As String if a = "Data" Then Return "TUO VALORE ok" else Return "TUO VALORE ko" end if End Function
Ciao
Kalman
Kalman
devo farlo nell'itemdatabound in quando devo applicare una particolare "formattazione" alla riga
Aggiungi l'evento
E la funzione dovrebbe esserecodice:private void InitializeComponent() { this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.ItemDataBound); }
codice:private void ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e){ if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem){ DataRowView drv = (DataRowView)e.Item.DataItem; string s = ""; s = drv.Row.ItemArray[2].ToString(); //dove 2 è l'indice della cella nella tabella if (s=="test"){ s = "ok"; } else{ s = "ko"; } } }
Fammi sapere
Ciao
K
Kalman
Grazie, ho trovato un'altra soluzione....
faccio un controllo sul .text della cella....
Grazie!