Ciao a tutti io ho un data grid e vorrei non mostrare una riga del datagrid se un <%#Container.DataItem("nomecampo")%> ha un certo valore si può fare?
Come??? Sto impazzendo![]()
Ciao a tutti io ho un data grid e vorrei non mostrare una riga del datagrid se un <%#Container.DataItem("nomecampo")%> ha un certo valore si può fare?
Come??? Sto impazzendo![]()
il solito esageratoOriginariamente inviato da mexican
Sto impazzendo![]()
![]()
Allora, per allenamento l'ho fatto con un GridView, ma per un DataGrid credo che sia simile
in questo esempio ho commentato 'e.Row.Visible = False perchè banale, mentre ho cambiato lo stile per la riga interessatacodice:Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load libreria.DataBind(Me.GridView1, StringaConnessioneTest, "select * from regioni", New String() {"codice_istat_regione"}) End Sub Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound Dim dbr As System.Data.Common.DbDataRecord = DirectCast(e.Row.DataItem, System.Data.Common.DbDataRecord) If e.Row.RowType = DataControlRowType.DataRow Then Dim codice_istat_regione As String = dbr("codice_istat_regione").ToString() If codice_istat_regione = "06" Then 'e.Row.Visible = False e.Row.Style.Add("background-color", "red") End If End If End Sub![]()
Pietro
Originariamente inviato da pietro09
il solito esagerato![]()
Allora, per allenamento l'ho fatto con un GridView, ma per un DataGrid credo che sia simile
in questo esempio ho commentato 'e.Row.Visible = False perchè banale, mentre ho cambiato lo stile per la riga interessatacodice:Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load libreria.DataBind(Me.GridView1, StringaConnessioneTest, "select * from regioni", New String() {"codice_istat_regione"}) End Sub Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound Dim dbr As System.Data.Common.DbDataRecord = DirectCast(e.Row.DataItem, System.Data.Common.DbDataRecord) If e.Row.RowType = DataControlRowType.DataRow Then Dim codice_istat_regione As String = dbr("codice_istat_regione").ToString() If codice_istat_regione = "06" Then 'e.Row.Visible = False e.Row.Style.Add("background-color", "red") End If End If End Sub![]()
mmm purtroppo non è la stessa cosa mi da un paio di errori sul rowDataBound
<aspataGrid id="prezzi_telefoni" runat="server" Width="300px" HeaderStyle-CssClass="titoletti" ItemStyle-CssClass="testo"
DataKeyField="id_prezzo" AutoGenerateColumns="False" DataSourceID="AccessDataSource1">
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
Telefono
</HeaderTemplate>
<ItemTemplate>
<%#Container.DataItem("telefono")%>
</ItemTemplate>
<HeaderStyle Width="120px" />
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderTemplate>
Fornitore
</HeaderTemplate>
<ItemTemplate>
<%#Container.DataItem("ragione_sociale")%>
</ItemTemplate>
<HeaderStyle Width="120px" />
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderTemplate>
Prezzo
</HeaderTemplate>
<ItemTemplate>
<%#Container.DataItem("prezzo")%>
</ItemTemplate>
<HeaderStyle Width="120px" />
</asp:TemplateColumn>
<asp:TemplateColumn Visible="false">
<HeaderTemplate>
Telefono
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="Nometelefono" Runat="server" Text='<%#Container.DataItem("id_telefono")%>' Visible="false" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
<HeaderStyle HorizontalAlign="Center" Width="100px" />
</asp:TemplateColumn>
<asp:TemplateColumn Visible="false">
<HeaderTemplate>
Fornitore
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="Nomefornitore" Runat="server" Text='<%#Container.DataItem("id_fornitore")%>' Visible="false" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
<HeaderStyle HorizontalAlign="Center" Width="100px" />
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderTemplate>
Quantità
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="Quantita" Runat="server" Width="100px" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
<HeaderStyle HorizontalAlign="Center" Width="100px" />
</asp:TemplateColumn>
</Columns>
<ItemStyle CssClass="testo" />
<HeaderStyle CssClass="titoletti" />
</aspataGrid><asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/mdb-database/mdb_max.mdb"
SelectCommand="SELECT Prezzi.id_prezzo AS Expr1, Prezzi.prezzo AS Expr2, Prezzi.id_telefono AS Expr3, Prezzi.id_fornitore AS Expr4, Prezzi.id_prezzo, Prezzi.prezzo, Prezzi.id_telefono, Prezzi.id_fornitore, Fornitori.ragione_sociale, telefoni.telefono FROM ((Prezzi INNER JOIN telefoni ON Prezzi.id_telefono = telefoni.id_telefono) INNER JOIN Fornitori ON Prezzi.id_fornitore = Fornitori.id_fornitore) WHERE (Prezzi.prezzo = (SELECT MIN(cdbl(prezzo)) AS minimo FROM Prezzi Prezzi_1 WHERE (id_telefono = telefoni.id_telefono)))">
</asp:AccessDataSource>
non ho voglia di lavorare a cottimo guardando il tuo codice![]()
ti passo un esempietto con un datagrid fatto in due modi diversi; a te l'onere di studiarloe di adattarlo
codice:Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound 'GoTo 1 Dim Comune$ = "" Select Case e.Item.ItemType Case ListItemType.Item, ListItemType.AlternatingItem Comune = e.Item.Cells(3).Text If Comune = "ALGHERO" Then e.Item.Style.Add("background", "red") End If End Select 1: Select Case e.Item.ItemType Case ListItemType.Item, ListItemType.AlternatingItem Dim dbr As DataRowView = DirectCast(e.Item.DataItem, DataRowView) Dim id_comune As String = (Libreria.NullToString(dbr("id_comune"))) If id_comune = "90006" Then e.Item.Style.Add("background", "green") End If End Select End Sub
Pietro
Private Sub prezzi_telefoni_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles prezzi_telefoni.ItemDataBound
'GoTo 1
Dim Comune As String = ""
Comune = e.Item.Cells(2).Text
If Comune = "7web" Then
e.Item.Style.Add("background", "red")
End If
End Sub
facendo questo.
ma non accade nulla come se non trovasse l'item non mi da errore ma non accade nemmeno che cambia lo sfondo perchè?
hai provato a fare
response.write(e.Item.Cells(2).Text) per vedere cosa ottieni? :master:
Pietro
non scrive nullaOriginariamente inviato da pietro09
hai provato a fare
response.write(e.Item.Cells(2).Text) per vedere cosa ottieni? :master: