質問
UserControl編集フォームでtelerik RadGridを使用しています。 InsertCommandイベントが発生すると、ユーザーコントロールを取得し、編集コントロールを見つけますが、テキストプロパティはすべて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 As Telerik.Web.UI.GridCommandEventArgs)処理RadGrid1.InsertCommand GridEditableItemとしてのDim InsertedItem = e.Item.OwnerTableView.GetInsertItem()
Dim _userControl As UserControl = CType(insertedItem.FindControl(GridEditFormItem.EditFormUserControlID), UserControl)
... http://www.telerik.com/help/aspnet/grid/grdinsertingvaluesusercontrolformtemplate。 html