Input vuoti sul post-back nonostante abbiano valori
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;
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