1

asp.netグリッドビューにあるrowdataバインドイベントを探しています。私が達成しようとしているのはこれです。

e.row.rowtype == datacontrolrowtype.datarow

webdataグリッドのデータバインドイベントで、しかしそれは機能していないので、どうすればこれを達成できますか。行のタイプとそのイベントを取得する方法に関する提案が役立ちます。

4

1 に答える 1

3

わかりました。「これ」を達成することの意味が100%わからないのですが、WebDataGridはそのようなイベントの2つのバージョンを提供しているので、あなたが試みているものはおそらくこれらと関係があります。私があなたのコード行を取得する限り、あなたはデータ行のみに関心があり、次の行関連のイベントは、私が知っている限り、データ行に対してのみ発生します(私の経験からのヘッダーまたは要約行には絶対にありません):

  • サーバー側:グリッドがデータソースのレコードにバインドすると、InitializeRowイベントが発生します。一般的なコントロールのプロパティで見つけるか、マークアップの最上位に追加します<ig:WebDataGrid oninitializerow="WebDataGrid1_InitializeRow"... 。ハンドラー内では、グリッドと行の両方にアクセスでき、このイベントは常にデータ行ごとに発生します。

        protected void WebDataGrid1_InitializeRow(object sender, Infragistics.Web.UI.GridControls.RowEventArgs e)
    {
        // Use:
        //e.Row.DataItem
        //e.Row.DataKey
        //e.Row.Index
    }
    
  • クライアント側の 行のレンダリング/レンダリングイベント。クライアント側のバインディング/レンダリングが有効になっている場合にのみ発生します。行がDOMにレンダリングされた後/前に発生するイベント<ClientEvents RowRendered="test" />。ここで、testはJavaScriptのハンドラー関数の名前です。

    function test(webDataGrid, evntArgs) {
         //The data object with all attributes
         evntArgs.get_dataItem();
    
         //Reference to the actual TR element
         evntArgs.get_rowElement();
    
         //Returns index of the row inside of its container collection.
         evntArgs.get_index();
    
         //Returns data key of the row. It is always an array of objects even in a case of a single data key field.
         evntArgs.get_dataKey();
     }
    

それらを使ってやりたいことができるはずだと思います。

于 2012-09-24T14:23:23.700 に答える