04. december 2002 - 22:46
Der er
20 kommentarer og 1 løsning
Kald method på codebehind side fra grid
// Jeg har et DataGrid på min front side. <asp:DataGrid id=DataGrid1 runat="server" AutoGenerateColumns="False" ShowFooter="False" DataKeyField="StationNumber"/> // På min codebehind side, erklærer jeg alle BoundColumn's og en enkelt ButtonColumn. private void setGrid() { clmButton = new ButtonColumn(); clmButton.ButtonType = ButtonColumnType.PushButton; clmButton.Text = "Select"; clmButton.CommandName = "kaldFraGridButtonMethod"; DataGrid1.Columns.Add (clmButton); clmStationNumber = new BoundColumn(); clmStationNumber.DataField = "StationNumber"; DataGrid1.Columns.Add (clmStationNumber); clmName = new BoundColumn(); clmName.DataField = "Name"; DataGrid1.Columns.Add (clmName); // osv osv... } //Ved klik på den knap, vil jeg gerne kalde en method på min codebehind side... public void kaldFraGridButtonMethod(int StationNumber) { string Tak = "Skal du have for hjælpen"; } // Hvordan gør man det????
Annonceindlæg fra Lemonet
05. december 2002 - 11:34
#1
det du har skrevet der virker måske ikke?? evt. nogen fejl?
05. december 2002 - 11:36
#2
btw... når det er en knap skal du bruge parameterne (object sender, EventArg e) kan også være det skal være noget DatagridButtonEventArg-ting-noget istedet for bare EventArg
05. december 2002 - 11:47
#3
Jeg har prøvet begge ting...! Når jeg trykker på knappen, forsvinder mit grid, og det er sådan set også det eneste der sker? jeg har prøvet at... public void kaldFraGridButtonMethod(int StationNumber) { lblTester.Text = "Nu virker det"; } Men der sker stadig ikke andet end at mit grid forsvinder?
05. december 2002 - 12:26
#4
Og teksten "Nu virker det" kommer ikke frem? den brokker sig slet ikke ved public void kaldFraGridButtonMethod(int StationNumber) istedet for public void kaldFraGridButtonMethod(object sender, EventArg e) ??
05. december 2002 - 12:37
#5
Jeg har både prøvet... public void kaldFraGridButtonMethod(object sender, DataGridCommandEventArgs e) { lblTester.Text = "Nu virker det"; } og... public void kaldFraGridButtonMethod(object sender, System.EventArgs e) { lblTester.Text = "Nu virker det"; } ...men lige godt er det! No cigar!
05. december 2002 - 13:12
#6
noget siger mig at den ikke helt fatter at den skal afvikle din procedure... hvordan ser sourcen til knappen ud på SELVE hjemmesiden når du viser dit datagrid?
05. december 2002 - 13:13
#7
<input type="submit" name="DataGrid1:_ctl2:_ctl0" value="Select" />
05. december 2002 - 16:12
#8
jeg har kigget lidt i .Net SDK'et, og det viser sig, at CommandName ikke er andet end et navn til din knap... det du skal gøre for at få det til at virke, er noget i den her retning: <asp:DataGrid id="Datagrid1" runat="server" OnItemCommand="kaldFraGrid" /> i din codebehind har du så din rutine, hvor du kan tjekke hvilken knap der blev trykket på public void kaldFraDataGrid(Object sender, DataGridCommandEventArgs e) { if (((Button)e.CommandSource).CommandName == "kaldFraGridButtonMethod") { lblTester.Text = "Nu virker det"; } } reference: ms-help://MS.NETFrameworkSDK/cpref/html/frlrfsystemwebuiwebcontrolsbuttoncolumnclasscommandnametopic.htm
05. december 2002 - 16:41
#9
hehe det har jeg også prøvet! Den gør absolut det samme. Mit grid forsvinder, og så sker der heller ikke andet!
05. december 2002 - 17:00
#10
*suk suk suk*... jeg har rodet lidt frem og tilbage på en side jeg lige havde liggende, og du har helt ret... det er noget virkelig åndsvagt... så nu kommer mit spørgsmål.. skal du oprette de knapper programmelt?? har nemlig fundet ud af, at hvis du gør det på den her måde <asp:ButtonColumn ButtonType="PushButton" Text="test" CommandName="kaldFraGridButtonMethod") " /> så virker den kode jeg gav dig helt perfekt...
05. december 2002 - 19:16
#11
Tja... Det virker sku.... Tror du det har givet mig en hovedpine lige uden videre....! Men så lad os antage at jeg gør det.... Jeg har sat min "DataKeyField" til at være "StationNumber", hvordan får jeg så fat i den aktuelle DataKeyField <asp:DataGrid id=DataGrid1 runat="server" AutoGenerateColumns="False" ShowFooter="False" DataKeyField="StationNumber"/> public void kaldFraDataGrid(Object sender, DataGridCommandEventArgs e) { if (((Button)e.CommandSource).CommandName == "kaldFraGridButtonMethod") { int SelectedStationNumber = ???? } }
05. december 2002 - 19:43
#12
det aner jeg virkelig ikke... jeg har aldrig arbejdet med de DataKyField, og synes ikke rigtig at kunne finde noget i SDK'et... Men du kan evt. fortælle mig hvordan du ville have gjort, hvis din egen måde at kalde din procedure på havde virket? Jeg kan fortælle dig så meget at du kan få indexnr på den knap du trykkede på på denne måde: int index = e.Item.ItemIndex;
05. december 2002 - 20:11
#13
Jeg har måtte ligge min StationNumber BoundColumn ud på fronten, og så har jeg fanget den ved... int StationNumberSelected = Int32.Parse(e.Item.Cells[1].Text.ToString()); //Cells[1] = StationNumber Du skal have mange tak for din prisværdige hjælp, må alle guder stå dig bi (endtil jeg igen har et problem ;) Mange tak!
11. december 2002 - 23:54
#15
jo, selvfølgelig.. hehe.. det havde ejg vist glemt i farten...
11. december 2002 - 23:54
#16
erm.. hvorfor har du linket til dette spm? ;)
12. december 2002 - 09:39
#17
fordi jeg er på røven.... og tænkte om du den almægtige :) ikke havde en ide?
12. december 2002 - 09:52
#18
erm... det forklarer ikke hvorfor du har linket til DETTE spm... du har da fået dit problem løst?
12. december 2002 - 11:12
#19
I dette spørgsmål har jeg fået løst mit problem tak! ...og så er det videre til næste problem....! :)
12. december 2002 - 13:28
#20
... som er...?
12. december 2002 - 13:54
#21
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.