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