webForumDet fria alternativet

DataGrid, OnItemCommand

1 svar · 241 visningar · startad av DavidB

DavidBMedlem sedan jan. 20001 372 inlägg
#1

Tjena

Jag har en DataGrid som ser ut följande:

<asp:DataGrid
id="showmenu"
OnItemCommand = "expandMenu"
runat="server">
</asp:DataGrid>

Jag skapar även i min codebehind en ButtonColumn såhär:

ButtonColumn bc = new ButtonColumn();
bc.DataTextField = "namn";
bc.ButtonType = ButtonColumnType.LinkButton;
bc.CommandName = "Item";

showmenu.DataSource = Datakälla;
showmenu.AutoGenerateColumns = false;
showmenu.Columns.Add(bc);
showmenu.DataBind();

och funktionen expandMenu ser ut följande:

public void expandMenu(object sender, DataGridCommandEventArgs e){
	// Kod som skall köras
}

Och om jag har fattat det hela rätt så skall funktionen expandMenu köras när man klickar på en länk i ButtonColumnen eftersom min buttoncolumns CommandName är satt till Item så att datagridens event OnItemCommand kör funktionen expandMenu. Nu e bara problemet jag inte får det att fungera.

Jag har testat att lägga en Response.Write("bla"); i funktionen expandMenu men ingenting skriv ut vilket får mig in på tankarna att funktionen inte körs all.

Hoppas ni förstod min förklaring, kändes lite rörig när jag skrev den.

Jag vet inte om jag har gjort rätt överhuvudtaget men det känns rätt i alla fall :). Nån som ser något fel i koden?

DavidBMedlem sedan jan. 20001 372 inlägg
#2

okay, löste även detta problem. för att kunna använda OnItemCommand verkar det som att datagriden måste databindas vid varje pageload. som det var nu så såg min pagelaod ut följande:

private void Page_Load(object sender, System.EventArgs e){
	if(Page.IsPostBack){
		kod för att binda data från datakälla till datagrid;
	}
}

men jag ändrade till följande:

private void Page_Load(object sender, System.EventArgs e){
	kod för att binda data från datakälla till datagrid;
}
135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)