DavidBMedlem sedan jan. 20001 372 inlägg Tjena
Har en DataGrid som anropar en funktion med OnItemDataBound
i denna funktion vill jag få ut värden från en kolumn i den aktuella
raden som "binds".
Har kommit såhär långt:
public void bldM(object sender, DataGridItemEventArgs e){
int cId = e.Item.DataItem("cId");
}
Får felet:
Compiler Error Message: CS0118: 'System.Web.UI.WebControls.DataGridItem.DataItem' denotes a 'property' where a 'method' was expected
Har försökt lösa det genom att ändra koden på diverse olika sätt
utan större framgång. Någon som ser en lösning?
renholmMedlem sedan apr. 20012 266 inlägg Vad har du för datakälla(DataSet, DataReader, Collection etc.)?
DataGrid ex
int cId = ((System.Data.DataRow)e.Item.DataItem)["cId"];
DavidBMedlem sedan jan. 20001 372 inlägg Datakällan är en DataTable
renholmMedlem sedan apr. 20012 266 inlägg Testa mitt exempel, borde fungera för DataTable också.
DavidBMedlem sedan jan. 20001 372 inlägg När jag testar får jag felet:
Cannot implicitly convert type 'object' to 'int'
och när jag sedan försöker konvertera detta till int så får jag följande:
System.InvalidCastException: Specified cast is not valid.
renholmMedlem sedan apr. 20012 266 inlägg int cId = (int)((System.Data.DataRow)e.Item.DataItem)["cId"];
DavidBMedlem sedan jan. 20001 372 inlägg får samma fel som innan:
System.InvalidCastException: Specified cast is not valid.
Här är hela koden:
public void bldM(object sender, DataGridItemEventArgs e){
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem){
DataGrid dg = new DataGrid();
int cId = (int)((System.Data.DataRow)e.Item.DataItem)["cId"];
WebSiteData wsd = new WebSiteData();
dg.DataSource = wsd.GetCategories(cId);
dg.DataBind();
e.Item.Cells[2].Controls.Add(dg);
}
}
DinoMedlem sedan sep. 20011 914 inlägg public void bldM(object sender, DataGridItemEventArgs e){
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem){
DataGrid dg = new DataGrid();
int cId = (int)((System.Data.[b]DataRowView[/b])e.Item.DataItem)["cId"];
WebSiteData wsd = new WebSiteData();
dg.DataSource = wsd.GetCategories(cId);
dg.DataBind();
e.Item.Cells[2].Controls.Add(dg);
}
}
DavidBMedlem sedan jan. 20001 372 inlägg Okej. fick det att fungera med följande kod:
int cId = [B]Convert.ToInt32([/B]((System.Data.DataRowView)e.Item.DataItem)["cId"][b])[/b];