Följande funktion i VB.net hämtar ut ett ID för en rad i en datagrid: <code> Prova har provat det också: Tror att jag löste det själv.Hämta värde ur datagrid (DataGidItemEventArgs)
Sub buildFAQsDataGrid(sender as Object, e as DataGridItemEventArgs)
If e.Item.ItemType = ListItemType.Item OR _
e.Item.ItemType = ListItemType.AlternatingItem then
'Build the DataGrid
Dim dg as New DataGrid()
'Find out the CategoryID
Dim CatID as Integer = e.Item.DataItem("FAQCategoryID")
'Bind the Data to the DataGrid
dg.DataSource = GetFAQsByCategoryID(CatID)
dg.DataBind()
'Add the DataGrid to the 2nd Column
e.Item.Cells(1).Controls.Add(dg)
End If
End Sub
Jag kan för mitt liv inte få detta att fungera i C#. Det som knasar är raden:
Dim CatID as Integer = e.Item.DataItem("FAQCategoryID")
Någon som kan göra detta i C#. Jag har försökt med konverterare på nätet, läst dokumentation och snart får jag fan krupp på det här. det ser ju så enkelt ut i vb.net - jag måste förbisett någonting...
tack på förhand
js
Sv: Hämta värde ur datagrid (DataGidItemEventArgs)
if (e.Item.ItemType == ListItemType.Item | e.Item.ItemType == ListItemType.AlternatingItem) {
DataGrid dg = new DataGrid();
int CatID = e.Item.DataItem("FAQCategoryID");
dg.DataSource = GetFAQsByCategoryID(CatID);
dg.DataBind();
e.Item.Cells(1).Controls.Add(dg);
}
</code>Sv:Hämta värde ur datagrid (DataGidItemEventArgs)
hade provat det och får följande felmeddelande vid kompilering:
System.Web.UI.WebControls.DataGridItem.DataItem' denotes a 'property' where a 'method' was expectedSv: Hämta värde ur datagrid (DataGidItemEventArgs)
<code>
e.Item.DataItem["FAQCategoryID"];
</code>Sv:Hämta värde ur datagrid (DataGidItemEventArgs)
Cannot apply indexing with [] to an expression of type "object"
när jag kolla i debuggerna finns ju datan jag letar efter e.Item.DataItem och sedan undernivå som heter [System.Data.Common.DbDataRecord]. Där kan jag hitta den data som jag vill få ur. Frågan är ju som sagt hur...
tack så här långt Hans!Sv: Hämta värde ur datagrid (DataGidItemEventArgs)
Gjorde såhär:
System.Data.Common.DbDataRecord dr = (System.Data.Common.DbDataRecord)e.Item.DataItem;
int intI = dr.GetInt32(1);