2006-08-15, 00:37
  #1
Medlem
BasRs avatar
Har problem med att läsa in värde från en datagrid in i en sub och lyckas inte lösa detta. Kör jag med ett fast värde på variabeln i subben o skriver tillbaka denna till griden fungerar det men ej då jag först försöker hämta in värdet från griden till subben för att sedan manipulera o skriva tillbaka make sense? "läsningen" fungerar inte.



kod ur subben

Kod:
pris=e.Item.DataItem("price")                 ' försöket att läsa in från kolumnen "price" 


'pris=10
'pris=pris*proc


'e.Item.cells(6).text=pris                   ' skriver till samma tabell i griden när jag kör med fast värde (pris=10 ovan) 

Griden:

Kod:
<asp:DataGrid id="temp" runat="server" DataKeyField="id"  AutoGenerateColumns="False" OnItemDataBound="checknewprice" OnItemCommand="buy">
   <Columns>
	
<asp:BoundColumn HeaderText="Id" DataField="id"/>

<asp:BoundColumn HeaderText="Name" DataField="namn"/>

<asp:BoundColumn HeaderText="Minimum Damage" DataField="mindam"/>

<asp:BoundColumn HeaderText="Maximum Damage" DataField="maxdam"/>

<asp:BoundColumn HeaderText="Strenght Required" DataField="minstr"/>

<asp:BoundColumn HeaderText="Class" DataField="class"/>
	
<asp:BoundColumn HeaderText="Price" DataField="price"/>

<asp:BoundColumn HeaderText="Amount" DataField="antal"/>
	
<asp:ButtonColumn HeaderText="Buy" ButtonType="PushButton" Text="Buy" CommandName="buy" />

</Columns> 
</asp:DataGrid>








Tacksam för hjälp .. postar ogärna mer kod här public men kan ta mera i pm om det är nödvändigt.

felmesset jag får: System.NullReferenceException: Object variable or With block variable not set.

Stack Trace:


[NullReferenceException: Object variable or With block variable not set.]
Microsoft.VisualBasic.CompilerServices.LateBinding .LateIndexGet(Object o, Object[] args, String[] paramnames) +1238
ASP.shoptest_aspx.checknewprice(Object source, DataGridItemEventArgs e) in C:\BegASPNET\shoptest.aspx:187
System.Web.UI.WebControls.DataGrid.OnItemDataBound (DataGridItemEventArgs e) +110
System.Web.UI.WebControls.DataGrid.CreateItem(Int3 2 itemIndex, Int32 dataSourceIndex, ListItemType itemType, Boolean dataBind, Object dataItem, DataGridColumn[] columns, TableRowCollection rows, PagedDataSource pagedDataSource) +181
System.Web.UI.WebControls.DataGrid.CreateControlHi erarchy(Boolean useDataSource) +1485
System.Web.UI.WebControls.BaseDataList.OnDataBindi ng(EventArgs e) +49
System.Web.UI.WebControls.BaseDataList.DataBind() +23
ASP.shoptest_aspx.page_load() in C:\BegASPNET\shoptest.aspx:99
System.Web.Util.ArglessEventHandlerDelegateProxy.C allback(Object sender, EventArgs e) +10
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Page.ProcessRequestMain() +731
Citera
2006-08-15, 01:13
  #2
Medlem
krimms avatar
Så du jobbar på ett webbläsarspel, det gör jag också.

Jag har för mig att du kan lösa detta problemet genom att deklarera din sub som Shared. Om det inte funkar måste du skapa en ny instans av objektet du använder, det gör du som du antagligen vet genom att skriva Dim variabel As New objekt.

Är inte riktigt hundra, tar detta från minnet då jag hade ett liknande problem förut.
Citera
2006-08-15, 18:25
  #3
Medlem
BasRs avatar
Hatten av, nu funkar det som det ska.. tack tack.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in