19. januar 2006 - 17:49
Der er
13 kommentarer og 1 løsning
c# datagrid selectedvalue
Hej Eksperter, Jeg har et datagrid hvori jeg har følgende: <ItemTemplate> <asp:ImageButton id="ImgButton" runat="server" ImageUrl="../Images/ikon.gif" OnClick="ImgButton_Click"></asp:ImageButton> </ItemTemplate> i ImgButton_Click vil jeg gerne hive fat i værdien der er på index 1 og lægge det i en string. Jeg havde håbet at jeg kunne gøre følgende: public void ImgButton_Click(object sender, System.Web.UI.ImageClickEventArgs e) { string text = Datagrid1.SelectedItem.Cells[1].Text; } Men så får jeg en error "Object reference not set to an instance of an object." Hvordan får jeg fat i den selecterede værdi fra gridet?
Annonceindlæg fra DE-CIX
19. januar 2006 - 17:58
#1
Prøv det her: Datagrid1.SelectedItem.ToString(); istedet for Datagrid1.SelectedItem.Cells[1].Text; Vh
19. januar 2006 - 18:00
#2
prøv lige at vise hele koden for dit gridview
20. januar 2006 - 09:34
#3
innercitydk: så får jeg stadigvæk fejlen "Object reference not set to an instance of an object. "
20. januar 2006 - 09:39
#4
dr_chaos: <ASP:DATAGRID id="Datagrid1" runat="server" CssClass="dataGrid" EnableViewState="true" CellPadding="0" AutoGenerateColumns="False"> <Columns> <ASP:TemplateColumn OmitSorting="True"> <ItemTemplate> <asp:ImageButton id="ImgButton" runat="server" ImageUrl="../Images/ikon.gif" OnClick="ImgButton_Click"></asp:ImageButton> </ItemTemplate> </ASP:TemplateColumn> <ASP:BoundColumn DataField="ID" HeaderText="ID" visible="true"></ASP:BoundColumn> <ASP:tBoundColumn DataField="DATE" HeaderText="Dato" DataFormatString="{0:d}" width="90"></ASP:BoundColumn> <ASP:BoundColumn DataField="TYPE" HeaderText="Type" width="125"></ASP:BoundColumn> </Columns> </ASP:DATAGRID>
20. januar 2006 - 10:22
#5
nye datagrid: <ASP:DATAGRID id="Datagrid1" runat="server" OnItemCommand="Test" CssClass="dataGrid" EnableViewState="true" CellPadding="0" AutoGenerateColumns="False"> <Columns> <ASP:TemplateColumn OmitSorting="True"> <ItemTemplate> <asp:ImageButton id="ImgButton" runat="server" ImageUrl="../Images/ikon.gif"></asp:ImageButton> </ItemTemplate> </ASP:TemplateColumn> <ASP:BoundColumn DataField="ID" HeaderText="ID" visible="true"></ASP:BoundColumn> <ASP:tBoundColumn DataField="DATE" HeaderText="Dato" DataFormatString="{0:d}" width="90"></ASP:BoundColumn> <ASP:BoundColumn DataField="TYPE" HeaderText="Type" width="125"></ASP:BoundColumn> </Columns> </ASP:DATAGRID> </ASP:DATAGRID>
20. januar 2006 - 10:22
#6
funktion i code behind: protected void Test(object sender, DataGridCommandEventArgs e) { System.Diagnostics.Debug.WriteLine(e.Item.ItemIndex); }
20. januar 2006 - 10:23
#7
på denne måde får du indexet ud på den row hvor du har trykket.
20. januar 2006 - 10:48
#8
dr_chaos: kan se at der mangler min onclick event på imgbutton: jeg har følgende: <asp:ImageButton id="ImgButton" runat="server" ImageUrl="../Images/ikon.gif" OnClick="ImgButton_Click"> Så hvordan får den fat i Test når jeg klikker på imgbutton? Når jeg klikker nu sker der ingen ting ud over at billedet opdaterer..
20. januar 2006 - 10:51
#9
du får den med i OnItemCommand="Test". prøv evt at ændre System.Diagnostics.Debug.WriteLine(e.Item.ItemIndex); til Response.Write(e.Item.ItemIndex);
20. januar 2006 - 11:07
#10
Når jeg klikker på min imgbutton sker der ingenting udover at siden loader igen... Den kommer ikke ind i koden (jeg har sat et breakpoint så jeg kan aflæse værdien) JEg ahr nu følgende på aspx-siden: <asp:ImageButton id="ImgButton" runat="server" ImageUrl="../Images/ikon.gif" OnItemCommand="Test"> og denne i aspx.cs: protected void Test(object sender, DataGridCommandEventArgs e) { string id = e.Item.ItemIndex.ToString(); }
20. januar 2006 - 11:17
#11
har du husket at tilføje this. osv event ligesom når man lavet et click event på en knap ?
20. januar 2006 - 11:20
#12
altså this.Datagrid1.ItemCommand+=new DataGridItemEventHandler(Test); i InitializeComponent()
20. januar 2006 - 11:56
#13
Nej den manglede jeg! Nu kommer jeg fint ind i funktionen, men id'et får ikke det rigtige id, den får bare værdien 0 - hvilket egenligt giver mening nok - får hvorfra ved den at når der klikkes på inmgbutton skal den have værdien fra fatagrid1 index [1] imgbutton ligger på index [0] - derfor bruger jeg i stedet: string id = e.Item.Cells[1].Text; Smider du et svar dr_chaos? Og tak for hjælpen
20. januar 2006 - 12:34
#14
svar :)
Kurser inden for grundlæggende programmering