2009-03-11 13 views
1

Ich benutze eine Telerik RadGrid, mit einem UserControl Bearbeitungsformular. Wenn das InsertCommand-Ereignis ausgelöst wird, erhalte ich das Benutzersteuerelement und finde Bearbeitungssteuerelemente dafür, aber dort sind Texteigenschaften alle string.Empty. Ich vermute, das hat etwas mit ViewState zu tun, aber ich weiß nicht, wo ich anfangen soll.Eingänge leer auf Post-zurück trotz Werte

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; 

Antwort

3

Ich glaube, dass Ihre Steuerelemente leer sind, weil Sie das Raster vor dem eingefügten Ereignis neu binden. Um dies zu vermeiden, sollten Sie RadGrid mit dem Ereignis NeedDataSource füllen. Es wird immer dann ausgelöst, wenn das Gitter neu gebunden werden muss.

1

Überprüfen Sie zunächst den Page_Load und vergewissern Sie sich, dass bei jedem Treffer auf der Seite nicht alles zurückgesetzt wird. Wenn Sie kein! IsPostBack haben, sind Sie wahrscheinlich. Das ist der häufigste Grund dafür, dass Sie keine Werte erhalten, wenn Sie etwas posten.

+0

ich habe das Gitter auf jedem Postback bevölkern, sonst Aktionen wie Sortier- oder Filterergebnis in einem leeren Raster. – ProfK

0

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

Verwandte Themen