Je kan de onclick van een hele rij genereren door gebruikt te maken van javascript. Bijvoorbeeld door onderstaand voorbeeld. Door selecteren wel te als kolom op te nemen maar de zichtbaarheid op false kan je met onderstaande code de rij selecteren door aan te klikken. Hierdoor krijg je de selectedIndex event. Op deze manier kan je dus ook een template column aanmaken met alle tekst die je wilt.
Code:
procedure Twerkplekken.DBWebGrid2_ItemDataBound(sender: System.Object; e: System.Web.UI.WebControls.DataGridItemEventArgs);
var
js_onclick: String;
drv: DataRowView;
dbg: DBWebGrid;
begin
dbg:= Sender as DBWebGrid;
drv:= (DataRowView(e.Item.DataItem));
if (e.Item.ItemType <> ListItemType.Header) then begin
if (e.Item.DataSetIndex <> -1) and (e.Item.ItemType <> ListItemType.EditItem) then begin
js_onclick:= 'javascript:__doPostBack(''DBWebGrid{0}$_ctl{1}$_ctl0'','''');';
js_onclick:= System.&String.Format(js_onclick, [dbg.ID[10], e.Item.ItemIndex+2]);
e.Item.Attributes.Add('OnClick', js_onclick);
end;
if e.Item.ItemType = ListItemType.SelectedItem then begin
e.Item.Attributes.Add('OnMouseOver', 'this.style.cursor=''pointer'';this.style.backgroundColor='''+Constanten.WebGridSelItemColor+'''');
e.Item.Attributes.Add('OnMouseOut', 'this.style.backgroundColor='''+Constanten.WebGridSelItemBackColor+'''');
end
else if e.Item.ItemType = ListItemType.AlternatingItem then begin
e.Item.Attributes.Add('OnMouseOver', 'this.style.cursor=''pointer'';this.style.backgroundColor='''+Constanten.WebGridAltItemColor+'''');
e.Item.Attributes.Add('OnMouseOut', 'this.style.backgroundColor='''+Constanten.WebGridAltItemBackColor+'''');
end
else begin
e.Item.Attributes.Add('OnMouseOver', 'this.style.cursor=''pointer'';this.style.backgroundColor='''+Constanten.WebGridItemColor+'''');
e.Item.Attributes.Add('OnMouseOut', 'this.style.backgroundColor='''+Constanten.WebGridItemBackColor+'''');
end;
end;
end;
Het gaat vooral om het eerste stukje van de code. De rest is voor een onmouseover effect en heb je niet nodig. Deze code is trouwens geschreven voor Grid met de naam DBWebGridx. Heten die van jou ander moet je dat even aanpassen.
Bookmarks