Domanda

Sto usando un RadGrid Telerik, con un modulo di modifica UserControl. Quando viene attivato l'evento InsertCommand, ottengo il controllo utente e trovo i controlli di modifica su di esso, ma le proprietà Text sono tutte string.Empty. Sospetto che questo abbia qualcosa a che fare con ViewState, ma non so da dove cominciare a cercare.

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;
È stato utile?

Soluzione

Credo che i tuoi controlli siano vuoti perché stai ricollegando la griglia prima dell'evento inserito. Per evitare tale comportamento, ti suggerisco di popolare RadGrid usando l'evento NeedDataSource. Viene attivato ogni volta che è necessario ricollegare la griglia.

Altri suggerimenti

Controlla prima il tuo Page_Load e assicurati di non ripristinare tutto lì con ogni hit sulla pagina. Se non hai un! IsPostBack, probabilmente lo sei. Questo è il motivo più comune per non ottenere valori quando pubblichi.

Usa:     Sottogruppo privato RadGrid1_InsertCommand (sorgente ByVal come oggetto, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Gestisce 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/grdinsertingvaluesusercontrolformtemplate. html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top