This is a migrated thread and some comments may be shown as answers.

HOW to Get Data Row Values in ItemCommans if Triggered from Client?

1 Answer 134 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Eric
Top achievements
Rank 1
Eric asked on 06 Feb 2013, 12:17 AM
var isDoubleClick = false;
  
          var clickHandler = null;
  
          var ClikedDataKey = null;
  
          function RowClick(sender, args) {
              ClikedDataKey = args._dataKeyValues.ID;
  
              isDoubleClick = false;
  
              if (clickHandler) {
  
                  window.clearTimeout(clickHandler);
  
                  clickHandler = null;
  
              }
  
              clickHandler = window.setTimeout(ActualClick, 200);
  
          }
  
          function RowDblClick(sender, args) {
  
              isDoubleClick = true;
  
              if (clickHandler) {
  
                  window.clearTimeout(clickHandler);
  
                  clickHandler = null;
  
              }
  
              clickHandler = window.setTimeout(ActualClick, 200);
  
          }
  
          function ActualClick() {
  
              if (isDoubleClick) {
  
                  var grid = $find("<%=RadGrid1.ClientID %>");
                  if (grid) {
                      var MasterTable = grid.get_masterTableView();
                      var Rows = MasterTable.get_dataItems();
                      for (var i = 0; i < Rows.length; i++) {
                          var row = Rows[i];
                          if (ClikedDataKey != null && ClikedDataKey == row.getDataKeyValue("ID")) {
                              MasterTable.fireCommand("MyClick2", ClikedDataKey);
                          }
                      }
                  }
  
              }
  
              else {
  
                  var grid = $find("<%=RadGrid1.ClientID %>");
                  if (grid) {
                      var MasterTable = grid.get_masterTableView();
                      var Rows = MasterTable.get_dataItems();
                      for (var i = 0; i < Rows.length; i++) {
                          var row = Rows[i];
                          if (ClikedDataKey != null && ClikedDataKey == row.getDataKeyValue("ID")) {
                              MasterTable.fireCommand("MyClick1", ClikedDataKey);
                          }
                      }
                  }
  
              }
  
  
  
          }




protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
    {
        if (e.CommandName == "MyClick1")
        {
            // songle click
            //e.CommandArgument -- Get access datakey here
        }
        else if (e.CommandName == "MyClick2")
        {
            // Double click
            //e.CommandArgument -- Get access datakey here
        }
    }


<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False" OnNeedDataSource="RadGrid1_NeedDataSource">
           <MasterTableView DataKeyNames="ID"
               ClientDataKeyNames="ID">
               <Columns>
                   ...................
                   ................
               </Columns>
           </MasterTableView>
           <ClientSettings>
               <ClientEvents OnRowDblClick="RowDblClick" OnRowClick="RowClick" />
           </ClientSettings>
       </telerik:RadGrid>







Here's the Problem:
Since I'm Firing the Command from CLIENT, in the server RadGrid1_ItemCommand
when I try to Access a Data Row Column 
via Hidden Field or just using

string STATUS= ((GridDataItem)e.Item).GetDataKeyValue("STATUS").ToString();

or the following

string STATUS= ((DataRowView)e.Item.DataItem)["STATUS"].ToString();

I always get the Value of the first Row, it does not get the value of the row that
was clicked, how do I get the value of the row that was

clicked considering i'm firing it form Client? Thank you.

1 Answer, 1 is accepted

Sort by
0
Accepted
Tags
Grid
Asked by
Eric
Top achievements
Rank 1
Answers by
Jayesh Goyani
Top achievements
Rank 2
Share this question
or