Ik ben een aspx pagina aan het maken met een datagrid. Allemaal geen probleem, alles lukt enzo (ik heb dat al wel nog eens gedaan
).
Ik heb echter ook een EditCommandColumn aan m'n datagrid hangen, en hier zit het probleem:
Als ik op de Edit-knop klik, dan reload mijn pagina, en krijg ik niks meer te zien.
Sterker zelfs, als ik een breakpoint zet in de EditCommand event-handler, zie ik dat die eventhandler nooit getriggerd wordt.
Zeer vreemd, want mijn code ziet er toch goed uit:
Nu, het vreemde is dat, als ik m'n Page_Load als volgt verander:
(Dus zonder check of er een postback plaatsvind), het dan wel allemaal zonder problemen werkt.
Ik zou het dus zo kunnen oplossen, maar dat vind ik niet goed. Ik wil nl. niet iedere keer als ik een postback heb, m'n datagrid-gegevens opnieuw gaan ophalen. Ik wil dat enkel doen als het nodig is, vandaar dat ik dus die BindContactsGrid ga gaan oproepen in m'n EditItemCommand method.
Wat ik nu echt wel heel vreemd vind, is dat bovenstaande code bij andere (eerdere) projecten van me wel gewoon gewerkt heeft. (Ok, ik maakte daar gewoon gebruik van DataLists, maar toch....)
Zie ik iets over het hoofd?
Ik heb echter ook een EditCommandColumn aan m'n datagrid hangen, en hier zit het probleem:
Als ik op de Edit-knop klik, dan reload mijn pagina, en krijg ik niks meer te zien.
Sterker zelfs, als ik een breakpoint zet in de EditCommand event-handler, zie ik dat die eventhandler nooit getriggerd wordt.
Zeer vreemd, want mijn code ziet er toch goed uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| private void Page_Load(object sender, System.EventArgs e)
{
_userInfo = (UserData)Session["UserData"];
_rm = (ResourceManager)Session["ResMan"];
CreateContactsGrid();
if( !this.IsPostBack )
{
BindContactsGrid();
}
} |
code:
1
2
3
4
5
| private void BindContactsGrid()
{
dgContacts.DataSource = ContactData.SearchContacts ("", "", _userInfo.UserId);
dgContacts.DataBind();
} |
code:
1
2
3
4
5
| private void dgContacts_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dgContacts.EditItemIndex = e.Item.ItemIndex;
BindContactsGrid();
} |
Nu, het vreemde is dat, als ik m'n Page_Load als volgt verander:
code:
1
2
3
4
5
6
7
8
9
10
| private void Page_Load(object sender, System.EventArgs e)
{
_userInfo = (UserData)Session["UserData"];
_rm = (ResourceManager)Session["ResMan"];
CreateContactsGrid();
BindContactsGrid();
} |
(Dus zonder check of er een postback plaatsvind), het dan wel allemaal zonder problemen werkt.
Ik zou het dus zo kunnen oplossen, maar dat vind ik niet goed. Ik wil nl. niet iedere keer als ik een postback heb, m'n datagrid-gegevens opnieuw gaan ophalen. Ik wil dat enkel doen als het nodig is, vandaar dat ik dus die BindContactsGrid ga gaan oproepen in m'n EditItemCommand method.
Wat ik nu echt wel heel vreemd vind, is dat bovenstaande code bij andere (eerdere) projecten van me wel gewoon gewerkt heeft. (Ok, ik maakte daar gewoon gebruik van DataLists, maar toch....)
Zie ik iets over het hoofd?
[ Voor 4% gewijzigd door whoami op 16-08-2003 15:44 ]
https://fgheysels.github.io/