Eingänge leer auf Post-back trotz Werte
Frage
Ich bin mit einem telerik RadGrid, mit einer Usercontrol bearbeiten Form. Wenn das Insert Ereignis ausgelöst wird, ich die Benutzer der Kontrolle bekommen und zu bearbeiten Kontrollen auf ihn finden, aber es Texteigenschaften sind all string.Empty. Ich vermute, dass dies etwas mit Viewstate zu tun hat, aber ich weiß nicht, wo man anfangen soll suchen.
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;
Lösung
Ich glaube, Ihre Kontrollen leer sind, weil Sie das Gitter vor dem eingefügten Ereignisse rebinding. Um ein solches Verhalten zu vermeiden Ich schlage vor, Sie füllen RadGrid das NeedDataSource Ereignis verwenden. Es wird ausgelöst, wenn das Gitter Rebinding muss.
Andere Tipps
Überprüfen Sie Ihre Page_Load zuerst und stellen Sie sicher, dass Sie nicht alles, was es auf die Seite mit jedem Treffer das Zurücksetzen werden. Wenn Sie keinen! IsPostBack haben, sind Sie wahrscheinlich. Das ist der häufigste Grund für die keine Werte bekommen, wenn Sie Beiträge verfassen.
Verwendung: Private Sub RadGrid1_InsertCommand (ByVal Quelle als Gegenstand, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Griffe RadGrid1.InsertCommand Dim insertedItem Wie GridEditableItem = e.Item.OwnerTableView.GetInsertItem ()
Dim _userControl As UserControl = CType(insertedItem.FindControl(GridEditFormItem.EditFormUserControlID), UserControl)
... http://www.telerik.com/help/aspnet/grid/grdinsertingvaluesusercontrolformtemplate. html