1

radgridダブルクリックでデータが取り込まれました。texboxで選択したデータを入力する必要があるrad ウィンドウマネージャーを起動しますradgrid。行の値を取得できません。選択したアイテムのインデックスしか取得できません。

これは私のグリッドaspxです:

<telerik:RadGrid ID="rgBuscar" runat="server" CellSpacing="0" Culture="es-ES"
GridLines="None" Height="469px" Skin="Hay" Width="944px">
<ClientSettings>
    <Scrolling AllowScroll="True" UseStaticHeaders="True" />
</ClientSettings>
<MasterTableView>
    <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>
    <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column">
         <HeaderStyle Width="20px"></HeaderStyle>
    </RowIndicatorColumn>
    <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column">
    <HeaderStyle Width="20px"></HeaderStyle>
    </ExpandCollapseColumn>
    <EditFormSettings>
    <EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn>
    </EditFormSettings>
    <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle>
</MasterTableView>
<ClientSettings>
    <Selecting AllowRowSelect="True" />
    <ClientEvents OnRowDblClick="RowDblClick"/>
</ClientSettings>
<PagerStyle PageSizeControlType="RadComboBox"></PagerStyle>
<FilterMenu EnableImageSprites="False"></FilterMenu>

そして私のJS:

<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">

<script type="text/javascript">
    function RowDblClick(sender, args) {
        var index = args.get_itemIndexHierarchical();
        sender.get_masterTableView().fireCommand("RowDblClick", index);
    }
</script>

そして最後に私のVB:

Protected Sub rgBuscar_ItemCommand(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles rgBuscar.ItemCommand
    If e.CommandName = "RowDblClick" Then
        Dim var As String = e.CommandArgument
        idValor = e.Item.Cells(2).Text
        MostrarVentana(idValor)
    End If     
End Sub

Public Sub MostrarVentana(ByVal IdCampo As Integer)
    lector = objBd.obtenerConfiguraciones("Cambio Ordenes")
    While lector.Read
        rwmCambio.Windows(0).NavigateUrl = lector("OCON_Url") & "?IdCampo=" & IdCampo
        rwmCambio.Windows(0).Width = Unit.Pixel(lector("OCON_Width"))
        rwmCambio.Windows(0).Height = Unit.Pixel(lector("OCON_Height"))
    End While
    rwmCambio.Windows(0).VisibleOnPageLoad = True
End Sub
4

1 に答える 1

2

Telerik は、RadGridの属性に値を割り当てることによりDataKeyValues(または、ポストバックするのClientDataKeyNamesではなく、クライアント API を使用してそれらにアクセスする場合)、 に豊富な API を提供MasterTableViewし、コードを介してアイテムに関連するデータにアクセスできます。複数の列をデータ キー コレクションに追加するには、列名をコンマで区切ります。

データ キー定義の例:

<MasterTableView  DataKeyNames="idColumnName,foreignKeyColumnName" ClientDataKeyNames="idColumnName,anotherColumnName">

OnRowSelectedイベント クライアント側 (JavaScript) イベント ハンドラーの例:

function OnGridRowSelected(sender, args) {
    var idDataKey = args.getDataKeyValue("idColumnName");
    var nameDataKey = args.getDataKeyValue("idColumnName");
    document.getElementById("myElement").value = "(" + idDataKey + ") " + nameDataKey;
}

ItemCommandイベント サーバー側 (VB) イベント ハンドラーの例:

Protected Sub PerformActionOnGridItem(sender As Object, e As Telerik.Web.UI.GridCommandEventArgs) Handles grdCustomerAccountInvoiceSummary.ItemCommand
    If (TypeOf (e.Item) Is Telerik.Web.UI.GridDataItem) Then
        Dim item As Telerik.Web.UI.GridDataItem = CType(e.Item, Telerik.Web.UI.GridDataItem)
        Select Case e.CommandName
            Case "RowDblClick"
                ' Insert required code here 
                ...
                ' Example: Set session variable to data key value
                Session("idColumnName") = item.GetDataKeyValue("idColumnName")
        End Select
    End If
End Sub
于 2013-11-14T16:47:05.847 に答える