0

ASP.NetとVBを使用して、レコードをグリッドビューで表示しています。通常のASPGridViewでは、次のようにコードビハインドからSelectedIndexChangedイベントを簡単に処理できます。

Sub mySub(ByVal sender as Object, ByVal e As EventArgs) 
          Handles GridView1.SelectedIndexChanged
  Dim id as String = GridView1.SelectedRow.Item(0).ToString
  Response.Redirect("Customer.aspx?ID=" & id) 'Or Whatever
End Sub

今、私は同じことをしようとしていますが、DevExpressに付属しているASPxGridViewを使用しています。明らかに、コードビハインドから直接処理できる組み込みのイベントはありません。javascriptを使用してクライアントクリックを実行する必要がありますが、クライアントからサーバーコードビハインドにクリックイベントを渡す試みはすべて失敗しました。

これが私のASPページです

<dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False"
     KeyFieldName="id" Width="550px" OnSelectionChanged="row_selected" >
    <SettingsBehavior AllowFocusedRow="True" />
    <SettingsText Title="Customers" />
    <Columns>
        <dx:GridViewDataTextColumn FieldName="id" ReadOnly="True" VisibleIndex="1">
            <EditFormSettings Visible="False" />
        </dx:GridViewDataTextColumn>
        <dx:GridViewDataTextColumn FieldName="Name" VisibleIndex="2">
        </dx:GridViewDataTextColumn>
    </Columns>
    <Settings ShowTitlePanel="True" />
    <ClientSideEvents FocusedRowChanged="function(s, e) {
        row_selected();
        }" />
</dx:ASPxGridView>

そして、これが私の背後にあるコードです(これは決して呼び出されません)

Sub row_selected()
    Dim id as String = ASPxGridView1.SelectedRow.Item(0).ToString
    Response.Redirect("Customers.aspx?ID=" & id) 
End Sub

ASPxGridView行の行をクリックして、コードビハインドから関数を呼び出すにはどうすればよいですか?

4

2 に答える 2

2

これを試してください。1。ASPxGridView1.SettingsBehavior.ProcessFocusedRowChangedOnServerをtrueに
設定します。 2.サーバー側のFocusedRowChangedイベントを処理します

于 2013-01-17T18:43:49.147 に答える
1

これはあなたが望むことをします。

私の場合、

ユーザーが行をクリックしたときにASPxGridViewからフィールド('ID')のコンテンツを取得したい...

行クリック用のClientSideEventを作成し、「RowClick(s、e);」を配置します。関数内。

以下に示すように、イベントが呼び出す実際の関数を作成します。これが難しい部分です。

GetFocusedRowIndex()はFOCUSEDインデックスであるため、インデックスを取得するために使用しないでください。

e.visibleIndexを使用する

function RowClick(s, e) {
    // Do callback to get the row data for 'ID' using current row.
    MyAspxGridView.GetRowValues(e.visibleIndex, 'ID', OnGetRowId);
}

コールバックを作成して、必要なフィールドを取得します。「ID」を取得しています。

function OnGetRowId(idValue) {
    alert('ID: ' + idValue.toString());
}
于 2014-12-18T18:41:08.273 に答える