我正在使用带有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;
有帮助吗?

解决方案

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

其他提示

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

使用:     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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top