尽管有值,但在回发后输入为空

时间:2009-03-11 19:22:56

标签: asp.net telerik

我正在使用带有UserControl编辑表单的telerik RadGrid。触发InsertCommand事件时,我获得用户控件,并在其上找到编辑控件,但Text属性都是string.Empty。我怀疑这与ViewState有关,但我不知道从哪里开始寻找。

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;

3 个答案:

答案 0 :(得分:3)

我相信您的控件是空的,因为您在插入的事件之前重新绑定网格。为避免此类行为,我建议您使用NeedDataSource事件填充RadGrid。只要网格需要重新绑定,就会触发它。

答案 1 :(得分:1)

首先检查你的Page_Load,确保每次点击页面时都没有重置所有内容。如果你没有!IsPostBack,你可能就是。这是发布时不获取值的最常见原因。

答案 2 :(得分:0)

使用:     Private Sub RadGrid1_InsertCommand(ByVal source As Object,ByVal e As Telerik.Web.UI.GridCommandEventArgs)处理RadGrid1.InsertCommand         Dim insertedItem 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