2017-11-03 19 views
0

私はRad Gridで行をクリックしたときにイベントを発生させたいのですが、基本的には 'editform'をクリックした行イベントで置き換えます。telerik radgrid行のonclickイベント

私はオンラインで検索していますが、他の人には効果がありません。

最初のコードはASP.NETにあり、2番目のコードはC#です。

は、私は、行変更を取得するためにSelectionChangedイベントを使用してSelectedRows場合は選択行にアクセスするには:

<div id="rgUser" runat="server" style="width: 300px; float: left; margin-left: 15px;"> 
<telerik:RadGrid ID="rgEffectivePermissions" runat="server" AutoGenerateColumns="false" 
    AllowSorting="True" Visible="true" AllowPaging="True" 
    OnPageIndexChanged="rgEffectivePermissions_PageIndexChanged" 
    OnItemDataBound="rgEffectivePermissions_ItemDataBound" 
    OnItemCommand="rgEffectivePermissions_ItemCommand"> 
    <ClientSettings> 
     <Resizing AllowColumnResize="true"></Resizing> 
    </ClientSettings> 
    <MasterTableView AllowSorting="true" DataKeyNames="SystemUserID"> 
     <CommandItemSettings ShowAddNewRecordButton="false" ShowRefreshButton="false" ShowExportToExcelButton="false" /> 
     <SortExpressions> 
      <telerik:GridSortExpression FieldName="ClientCode" SortOrder="Ascending" /> 
     </SortExpressions> 
     <Columns> 
      <telerik:GridTemplateColumn UniqueName="UserName" DataField="UserName" HeaderText="User Name" SortExpression="UserName"> 
       <HeaderStyle HorizontalAlign="Center" /> 
       <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="100" /> 
       <ItemTemplate> 
        <asp:Label ID="lblUsername" runat="server"><%# DataBinder.Eval(Container.DataItem, "UserName") %></asp:Label> 
        <asp:HoverMenuExtender ID="hmeSystemUserInfo" runat="server" TargetControlID="lblUsername" PopupControlID="pnlSystemUserInfo" PopupPosition="Bottom" /> 
        <asp:Panel ID="pnlSystemUserInfo" runat="server" Style="visibility: hidden;"> 
         <asp:Label runat="server" BackColor="Black" ForeColor="White" BorderColor="Black" Font-Bold="true" BorderStyle="Solid"> 
         Last Updated By: <%# DataBinder.Eval(Container.DataItem, "LastUpdatedBy") %><br /> 
         Last Update Date: <%# DataBinder.Eval(Container.DataItem, "LastUpdateDate") %><br /> 
         Is Service Account: <%# DataBinder.Eval(Container.DataItem, "IsServiceAccount") %><br /> 
         Is Account Manager: <%# DataBinder.Eval(Container.DataItem, "IsAccountManager") %> 
         </asp:Label> 
        </asp:Panel> 
       </ItemTemplate> 
      </telerik:GridTemplateColumn> 
      <telerik:GridBoundColumn UniqueName="SystemUserID" DataField="SystemUserID" HeaderText="SystemUserID" SortExpression="SystemUserID" ReadOnly="true" Visible="true" Display="false"> 
       <HeaderStyle HorizontalAlign="Center" /> 
       <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" /> 
      </telerik:GridBoundColumn> 
      <telerik:GridTemplateColumn UniqueName="EmailAddress" DataField="EmailAddress" HeaderText="Email Address" SortExpression="EmailAddress"> 
       <HeaderStyle HorizontalAlign="Center" /> 
       <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="100" /> 
       <ItemTemplate> 
        <%# DataBinder.Eval(Container.DataItem, "EmailAddress") %> 
       </ItemTemplate> 
      </telerik:GridTemplateColumn> 
      <telerik:GridButtonColumn ButtonType="ImageButton" UniqueName="EditButton" HeaderText="Edit" 
       HeaderStyle-HorizontalAlign="Center" CommandName="EditForm" ImageUrl="~/Images/editPencil.png"> 
       <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" /> 
      </telerik:GridButtonColumn> 
     </Columns> 
    </MasterTableView> 
</telerik:RadGrid> 
</div> 





protected void rgEffectivePermissions_ItemCommand(object source, GridCommandEventArgs e) 
{ 
    switch (e.CommandName) 
    { 
     case ("EditForm"): 
      { 
       GridDataItem item = (GridDataItem)e.Item; 
       String SystemUserID = item["SystemUserID"].Text; 
       rgSecurityGroup.DataSource = AdminManager.GetClientGroupBySUSystemUserID(SystemUserID); 
       rgSecurityGroup.DataBind(); 

       //int clientID = Convert.ToInt32(ddlClient1.SelectedValue); 
       //rgProductGroup.DataSource = AdminManager.GetActivityGroupsByClientGroupID(41); 
       //rgProductGroup.DataBind(); 
       break; 
      } 
    } 
} 
+0

?既存のイベントを使用します。 – aghilpro

答えて

0

これを試してみてください。

radGridView1.SelectionChanged += new System.EventHandler(radGridView1_SelectionChanged); 

private void radGridView1_SelectionChanged(object sender, EventArgs e) 
{ 
    try 
    { 
     if (this.radGridView1.SelectedRows.Count > 0) 
     { 
      int selectedIndex = radGridView1.SelectedRows[0].Index; 
     } 
    } 
    catch (Exception ex) 
    { 
     Debug.WriteLine(ex.Message); 
    } 
} 
+0

@ハッサン・メッディ私の答えがあなたの答えを受け入れるか、それをアップヴォートするのに役立ちましたら、感謝します。 – aghilpro

0

一つオプションは、お好みのコマンドを発射した後、背後にあるコードでそれを処理するスクリプトを実行しRadGridのOnRowClickクライアントイベントを使用することです。背後にあるコードでは

<telerik:RadGrid ID="rgEffectivePermissions" runat="server" 
    <ClientSettings> 
     <ClientEvents OnRowClick="onRowClik" /> 
    </ClientSettings> 
</telerik:RadGrid> 

<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> 
    <script> 
     function onRowClik(sender, args) { 
      $find("<%= rgEffectivePermissions.ClientID %>").get_masterTableView().fireCommand("MyCommand", args.get_item().getDataKeyValue("SystemUserID")); 
     } 
    </script> 
</telerik:RadCodeBlock> 

protected void rgEffectivePermissions_ItemCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e) 
{ 
    if(e.CommandName == "MyCommand") 
    { 
     rgSecurityGroup.DataSource = GetGridSource(int.Parse(e.CommandArgument.ToString())); 
     rgSecurityGroup.Rebind(); 
    } 
} 

オプションはaghilproで述べたアプローチを用いることであろう。 OnSelectedIndexChangedサーバーイベントまたはRadGridを利用する。

<telerik:RadGrid ID="rgEffectivePermissions" runat="server" 
    OnSelectedIndexChanged="rgEffectivePermissions_SelectedIndexChanged"> 
    <ClientSettings EnablePostBackOnRowClick="true"> 
     <Selecting AllowRowSelect="true" /> 
    </ClientSettings> 
</telerik:RadGrid> 

の背後にあるコード:あなたがイベントを作成しようとしているのはなぜ

protected void rgEffectivePermissions_SelectedIndexChanged(object sender, EventArgs e) 
{ 

    if(((RadGrid)sender).SelectedItems.Count > 0) 
    { 
     rgSecurityGroup.DataSource = GetGridSource(int.Parse(((GridDataItem)((RadGrid)sender).SelectedItems[0])["SystemUserID"].Text)); 
     rgSecurityGroup.Rebind(); 
    } 
} 
関連する問題