如何在代码后面处理ASPxGridView的OnRowClick事件?

时间:2013-01-17 15:49:41

标签: asp.net devexpress aspxgridview

我使用ASP.Net和VB在网格视图中显示记录。 在普通的ASP GridView中,我可以简单地从后面的代码处理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行上的行来调用代码后面的函数?

2 个答案:

答案 0 :(得分:2)

试试这个:
1.将ASPxGridView1.SettingsBehavior.ProcessFocusedRowChangedOnServer设为true 2.处理服务器端FocusedRowChanged事件

答案 1 :(得分:1)

这会做你想要的......

就我而言,

当用户点击该行时,我希望从ASPxGridView获取字段(&#39; ID&#39;)的内容...

为行单击创建ClientSideEvent并放置&#34; RowClick(s,e);&#34;在功能中。

创建事件将调用的实际函数,如下所示 - 这是棘手的部分;

不要使用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&#39;

function OnGetRowId(idValue) {
    alert('ID: ' + idValue.toString());
}