Question

J'utilise un telerik RadGrid, avec un formulaire d'édition UserControl. Lorsque l'événement InsertCommand est déclenché, j'obtiens le contrôle utilisateur et y trouve les contrôles d'édition, mais les propriétés du texte sont toutes string.Empty. Je suppose que cela a quelque chose à voir avec ViewState, mais je ne sais pas par où commencer.

protected void jobGrid_InsertCommand(object source, GridCommandEventArgs e)
{
    var editControl = e.Item.FindControl(GridEditFormItem.EditFormUserControlID) as JobEditControl;
    SqlJobProvider.InsertJob(GetFieldValues(editControl));
}

private Dictionary<string, object> GetFieldValues(UserControl editControl)
{
    string tb = (editControl.FindControl("aspText") as TextBox).Text;
Était-ce utile?

La solution

Je pense que vos contrôles sont vides, car vous reliez la grille avant l'événement inséré. Pour éviter un tel comportement, je vous suggère de renseigner RadGrid à l'aide de l'événement NeedDataSource. Il est déclenché chaque fois que la grille nécessite une nouvelle liaison.

Autres conseils

Vérifiez tout d'abord votre Page_Load et assurez-vous de ne pas tout réinitialiser à chaque coup sur la page. Si vous n'avez pas! IsPostBack, vous l'êtes probablement. C’est la raison la plus courante pour laquelle vous ne recevez pas de valeur lorsque vous publiez.

Utiliser:     Private Sub RadGrid1_InsertCommand (source ByVal en tant qu'objet, ByVal et en tant que Telerik.Web.UI.GridCommandEventArgs) gère RadGrid1.InsertCommand.         Dim InsertItem As GridEditableItem = e.Item.OwnerTableView.GetInsertItem ()

    Dim _userControl As UserControl = CType(insertedItem.FindControl(GridEditFormItem.EditFormUserControlID), UserControl)

... http://www.telerik.com/help/aspnet/grid/grd html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top