1

我正在使用带有 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;
4

3 回答 3

3

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

于 2009-03-11T20:08:32.847 回答
1

首先检查您的 Page_Load 并确保您没有在每次点击页面时重置那里的所有内容。如果您没有!IsPostBack,您可能是。这是您发布时未获得价值的最常见原因。

于 2009-03-11T19:28:09.480 回答
0

使用: Private Sub RadGrid1_InsertCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles 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

于 2009-10-14T07:59:26.437 回答