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

Check/UNcheck CheckBox Control when user selected row.

3 Answers 783 Views
Grid
This is a migrated thread and some comments may be shown as answers.
July
Top achievements
Rank 2
July asked on 02 Mar 2012, 07:59 PM
this is my scenario

The user can checkBox or select Row..
This grid allow select mutiple rows.

I need:
When user selected row--> check the checkBox
When user unselected row --> uncheck the checbox.

I try with:
itemCommand --> rowClick, but when I press Shif+click for select multiple rows, does not work.
SelectIndexChange --> idem.
js onRowSelected --> I couldn't find chk for check or not...

this is my code.


ASPX

    <%@ Page Title="" Language="C#" MasterPageFile="~/UI/Doculex.Master" AutoEventWireup="true"
    CodeBehind="DocumentsList.aspx.cs" Inherits="WebSearch.UI.DocumentsList" %>

<%@ MasterType VirtualPath="~/UI/Doculex.Master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
 <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
        <script type="text/javascript" language="javascript">

            function OnRowSelected(sender, args) {
               
                var grid = $find("<%=DocumentGrid.ClientID %>");
                var MasterTable = grid.get_masterTableView();
                var selectedRows = MasterTable.get_selectedItems();
                

                for (var i = 0; i < selectedRows.length; i++) {
                    var row = selectedRows[i];
                   
                    
                }
            }


            function onColumnHidden(sender, args) {
                sender.get_masterTableView().get_element().style.tableLayout = "auto";
                sender.get_masterTableViewHeader().get_element().style.tableLayout = "auto";
                window.setTimeout(function () {
                    sender.get_masterTableViewHeader().get_element().style.tableLayout = "fixed";
                    sender.get_masterTableView().get_element().style.tableLayout = "fixed";
                }, 1)
            }


            function spellCheck() {
                var radTextBox1 = document.getElementById("<%= txtComents.ClientID %>").value;
                if (radTextBox1 == "" || radTextBox1.split(' ').length < 3) {
                    return;
                } else {
                    var spell = $find('<%= RadSpell1.ClientID %>');
                    spell.startSpellCheck();
                }

            }

            function checkFinished(sender, args) {
                var radTextBox1 = document.getElementById("<%= txtComents.ClientID %>").value;
                if (radTextBox1 == "" || radTextBox1.split(' ').length < 3) {
                    return;
                } else {
                    args.suppressCompleteMessage = true;
                }

            }

            function closeSpell(sender, args) {
                var radTextBox1 = document.getElementById("<%= txtComents.ClientID %>").value;
               

                if (radTextBox1 == "" || radTextBox1.split(' ').length < 3) {
                    return;
                } else {


                    document.getElementById("<%= imgSave.ClientID %>").click();


                   
                }
            }
          
      

        </script>
    </telerik:RadCodeBlock>
     <link href="Style/Master/Document.css" rel="stylesheet" type="text/css" />
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    
    <telerik:RadAjaxManagerProxy ID="AjaxManagerProxy1" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="DocumentGrid">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="DocumentGrid" />
                    <telerik:AjaxUpdatedControl ControlID="RibbonBarMenu" />
                </UpdatedControls>
            </telerik:AjaxSetting>
           <telerik:AjaxSetting AjaxControlID="imgSave">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="NotesRepeater" />
                   
                </UpdatedControls>
            </telerik:AjaxSetting>

            
        </AjaxSettings>
    </telerik:RadAjaxManagerProxy>
    <div id="containerSub" runat="server">
     

        <telerik:RadSplitter ID="Splitter" Width="100%" Height="100%" Orientation="Vertical"
            runat="server">
            <telerik:RadPane runat="server" ID="gridPane" Scrolling="None" Height="80%" Width="100%">
                <input type="hidden" id="nodeValueHiddenField" name="nodeValueHiddenField" runat="server" />
                <telerik:RadGrid ID="DocumentGrid" Skin="Vista" AutoGenerateColumns="false" ShowHeader="true"
                    Width="100%" AllowSorting="true" runat="server" AllowMultiRowSelection="true"
                    AllowPaging="true" OnItemCreated="DocumentGrid_ItemCreated" OnNeedDataSource="DocumentGrid_NeedDataSource"
                    OnItemCommand="DocumentGrid_ItemCommand" OnRowDrop="DocumentGrid_RowDrop">
                    <MasterTableView ClientDataKeyNames="Id" TableLayout="Auto" GridLines="None">
                        <Columns>
                            <telerik:GridTemplateColumn UniqueName="CheckBoxTemplateColumn">
                                <HeaderTemplate>
                                    <asp:CheckBox ID="headerChkbox" OnCheckedChanged="ToggleSelectedState" AutoPostBack="True"
                                        runat="server"></asp:CheckBox>
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <asp:CheckBox ID="chkSelectRow" OnCheckedChanged="ToggleRowSelection" AutoPostBack="True"
                                        runat="server"></asp:CheckBox>
                                </ItemTemplate>
                            </telerik:GridTemplateColumn>
                        </Columns>
                    </MasterTableView>
                    <ClientSettings EnablePostBackOnRowClick="true" AllowRowsDragDrop="true" >
                        <ClientEvents OnColumnHidden="onColumnHidden" OnRowDropping="onRowDropping" OnRowSelected="OnRowSelected"   />  
                        <Selecting AllowRowSelect="true"  EnableDragToSelectRows="false"/>
                    </ClientSettings>
                    <PagerStyle Position="Bottom" Mode="NextPrevNumericAndAdvanced" AlwaysVisible="true" />
                </telerik:RadGrid>
            </telerik:RadPane>
            <telerik:RadPane ID="searchPane" Width="20px"  style="right:0; top:0" runat="server" Scrolling="None" Height="350px">
                <telerik:RadSlidingZone runat="server" ID="PaneZone" SlideDirection="Left">
                    <telerik:RadSlidingPane ID="DocPreview" runat="server" Width="300px" OnClientDocked="PaneDockDocPreview"
                        OnClientUndocked="PaneUnDockDocPreview">
                        <div id="preview" runat="server">
                        </div>
                    </telerik:RadSlidingPane>
                    <telerik:RadSlidingPane ID="Properties" runat="server" Width="300px" OnClientDocked="PaneDockProperties"
                        OnClientUndocked="PaneUnDockProperties" IconUrl="~/UI/Images/properties.png">
                        <div id="PropertyList" style="margin-top: 5%" runat="server" visible="true">
                        </div>
                    </telerik:RadSlidingPane>
                    <telerik:RadSlidingPane Scrolling="Y" ID="FileNotesPane" runat="server" Width="300px"
                        OnClientDocked="PaneDockNotes" OnClientUndocked="PaneUnDockNotes" IconUrl="~/UI/Images/note.png"
                        Visible="false">
                       
                        <div style="margin-top: 5%; width: 100%" runat="server">
                            <asp:LinkButton ID="lnkAddComment" class="AddComment" runat="server" OnClick="lnkAddComment_Click">
                                <asp:ImageButton ID="imgAdd" runat="server" ImageUrl="~/UI/Images/add.png" />
                                <asp:Label ID="lblAddComment" runat="server" /></asp:LinkButton>&nbsp;&nbsp;
                        </div>
                        <div class="clear">
                        </div>
                        <asp:Panel ID="pnlComment"  runat="server">
                            <table style="width: 100%">
                                <tr>
                                    <td>
                                        <asp:Label ID="lblComent" runat="server"></asp:Label>
                                    </td>
                                    <td>
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        <asp:TextBox TextMode="MultiLine" CssClass="commentsWithScroll" Wrap="true" ID="txtComents"
                                            runat="server" onblur="javascript: spellCheck();"></asp:TextBox>
                                        <telerik:RadSpell ID="RadSpell1" runat="server" DictionaryPath="~/App_Data/RadSpell"
                                            ControlToCheck="txtComents" ButtonType="None" OnClientCheckFinished="checkFinished"
                                            OnClientDialogClosed="closeSpell" HandlerUrl="~/Telerik.Web.UI.DialogHandler.axd"
                                            SpellCheckProvider="PhoneticProvider" />
                                        <asp:RequiredFieldValidator ID="rfvComment" runat="server" ControlToValidate="txtComents"
                                            Display="Dynamic" ErrorMessage="*" CssClass="validator" />
                                        <asp:RegularExpressionValidator ID="rExpComments" runat="server" ControlToValidate="txtComents"
                                            CssClass="validator" Display="Dynamic" ValidationExpression="^([\S\s]{1,280})$"></asp:RegularExpressionValidator>
                                    </td>
                                    <td>
                                        <asp:ImageButton ID="imgSave" runat="server" ImageUrl="~/UI/Images/add.png" OnClick="imgSave_Click" />
                                        <asp:ImageButton ID="imgCancel" runat="server" ImageUrl="~/UI/Images/cancel.png"
                                            OnClick="imgCancel_Click" />
                                    </td>
                                </tr>
                            </table>
                            <div class="clear">
                            </div>
                        </asp:Panel>
                        <asp:Repeater ID="NotesRepeater" runat="server">
                            <ItemTemplate>
                                <div class="note">
                                    <div class="dateNote">
                                        <%# Eval("Date") %>
                                    </div>
                                    <div class="ownerNote">
                                        <%# Eval("OwnerComment")%>
                                        </h3>
                                        <div class="commentNote">
                                            <%# Eval("Comments")%>
                                        </div>
                                    </div>
                                    <div class="clear">
                                    </div>
                            </ItemTemplate>
                        </asp:Repeater>
                       
                    </telerik:RadSlidingPane>
                </telerik:RadSlidingZone>
            </telerik:RadPane>
        </telerik:RadSplitter>
    </div>
    <%-- <div class="headerPage">
        <asp:Label ID="lblTitle" runat="server"></asp:Label>
    </div>--%>
</asp:Content>




My ASPX:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Globalization;
using System.IO;
using System.Resources;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
using WebSearch.Components;
using WebSearch.SecurityModel;
using WebSearch.UI.Model.Display;
using WebSearch.UI.Model.Items.Grid;

namespace WebSearch.UI
{
    public partial class DocumentsList : Page
    {
        #region Properties

        private readonly List<string> _hideColum = new List<string>();
        private readonly smOrganization _organization = new smOrganization();
        private string _culture;
        private ResourceManager _resources;

        #endregion

        #region Events

        #region Page

        private void HeaderContextMenu_ItemCreated(object sender, RadMenuEventArgs e)
        {
            CommonFunctions.HideColumns(sender, e);
            CommonFunctions.HideSpecialColumns("Select", e.Item);
            CommonFunctions.HideSpecialColumns("Id", e.Item);
            CommonFunctions.HideSpecialColumns("Path", e.Item);
            CommonFunctions.HideSpecialColumns("FileName", e.Item);
        }

        protected void Page_PreRender(object sender, EventArgs e)
        {
            if (Session["A"] != null)
            {
                string[] sessionValue = Session["A"].ToString().Split(',');
                string action = sessionValue[0].ToString();

                switch (action)
                {
                    case "prop":
                        LoadProperties();
                        MenuDisplay.ActiveDocuments((Doculex) Page.Master);
                        break;

                    case "note":
                        LoadNotes();
                        MenuDisplay.ActiveDocuments((Doculex) Page.Master);
                        break;

                    case "noteWS":
                        LoadWSNotes(sessionValue[1].ToString());
                        MenuDisplay.BasicTabs((Doculex)Page.Master);
                        break;

                    default:
                        Session["A"] = null;
                        break;
                }
            }
            else
            {
                LoadMenu();
                Session["A"] = null;
            }
        }

       

        protected void Page_Load(object sender, EventArgs e)
        {
            GetInfo();

            if (!Page.IsPostBack)
            {
                LoadSettings();
                CreateColumns();
            }

            DocumentGrid.HeaderContextMenu.ItemCreated += HeaderContextMenu_ItemCreated;
        }

        protected void Page_Init(object sender, EventArgs e)
        {
            RadSpell1.AllowAddCustom = false;
        }

        protected void imgSave_Click(object sender, ImageClickEventArgs e)
        {
            SaveComment();
            Session["Add"] = null;
        }

        #endregion

        #region Grid

        protected void DocumentGrid_ItemCommand(object source, GridCommandEventArgs e)
        {
            if (e.CommandName == "RowClick" && e.Item is GridDataItem)
            {
                e.Item.Selected = true;
               
                DocPreview.Visible = true;

                (e.Item.FindControl("chkSelectRow") as CheckBox).Checked = true;

                LoadPreview((GridDataItem) e.Item);
            }
        }

        protected void DocumentGrid_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
        {
            DocumentGrid.DataSource = GenericGrid.ListDocuments?? new DataTable();
        }

        protected void DocumentGrid_ItemCreated(object sender, GridItemEventArgs e)
        {
            if (e.Item is GridDataItem)
            {
                e.Item.PreRender += DocumentGrid_ItemPreRender;
            }
        }

        private void DocumentGrid_ItemPreRender(object sender, EventArgs e)
        {
            ((sender as GridDataItem)["CheckBoxTemplateColumn"].FindControl("chkSelectRow") as CheckBox).Checked =
                (sender as GridDataItem).Selected;

            if (Session["checked"] != null)
            {
                LoadPreview((GridDataItem) Session["checked"]);

                Session["checked"] = null;
            }
        }

        protected void DocumentGrid_RowDrop(object sender, GridDragDropEventArgs e)
        {
            if ((!String.IsNullOrEmpty(e.HtmlElement)) && (e.DraggedItems.Count > 0))
            {
                string nodeValue = nodeValueHiddenField.Value.Trim();

                RadTreeView tv = App.GetTreeViewWS(this.Page);
                RadTreeNode node = tv.FindNodeByValue(nodeValue);

                var nodePasteList = new List<DropNodes>();

                foreach (GridDataItem draggedItem in DocumentGrid.SelectedItems)
                {
                    var nodeDoc = new RadTreeNode
                                      {
                                          Value = draggedItem["Id"].Text,
                                          Text = draggedItem["FileName"].Text,
                                          ContextMenuID = "DocumentContextMenu"
                                      };
                    nodeDoc.Attributes["Type"] = "D";
                    nodeDoc.Attributes["path"] = draggedItem["Path"].Text;
                    //nodeDoc.Attributes["documnetStatus"] = draggedItem["DocumentStatusId"].ToString();
                    //nodeDoc.Attributes["securityLevel"] = draggedItem["SecurityLevelId"].ToString();
                    nodeDoc.Attributes["AllowEdit"] = "false";


                    nodePasteList.Add(new DropNodes
                                          {
                                              FileId = Convert.ToInt32(draggedItem["Id"].Text),
                                              NewNode = Convert.ToInt32(node.Value)
                                          });

                    string extension = CommonFunctions.GetExtensionFile(draggedItem["Path"].Text);
                    nodeDoc.ImageUrl = CommonFunctions.GetDocumentIcon(extension).Replace("~/UI/", "");
                    node.Nodes.Add(nodeDoc);
                }

                node.ExpandParentNodes();
                node.Expanded = true;

                if (nodePasteList.Count > 0)
                {
                    new smOrganization().PasteNode(nodePasteList);
                }
            }
        }


        //protected void DocumentGrid_SelectIndexChanged(object sender, EventArgs e)
        //{
        //    GridItemCollection  dataItem = DocumentGrid.SelectedItems;
            
        //    foreach (GridDataItem item in dataItem)
        //    {
        //        CheckBox chk = item.FindControl("chkSelectRow") as CheckBox;
                
        //        if (item.Selected && !chk.Checked)
        //        {
        //            chk.Checked = true;
        //        }
        //        else
        //        {
        //            chk.Checked = false;
        //        }
        //    }
            


        //}

        #endregion

        #region NotesEvents

        protected void lnkAddComment_Click(object sender, EventArgs e)
        {
            pnlComment.Visible = true;
            txtComents.Text = null;
            lnkAddComment.Visible = false;
            txtComents.Focus();
            Session["Add"] = 1;
        }

        protected void imgCancel_Click(object sender, ImageClickEventArgs e)
        {
            txtComents.Text = null;
            pnlComment.Visible = false;
            lnkAddComment.Visible = true;
            Session["Add"] = null;
        }

        #endregion

        #endregion

        #region CheckSelectedEvents

        protected void ToggleRowSelection(object sender, EventArgs e)
        {
            ((sender as CheckBox).NamingContainer as GridItem).Selected = (sender as CheckBox).Checked;

            ///  LoadPreview((((sender as CheckBox).NamingContainer) as GridDataItem));

            Session["checked"] = (((sender as CheckBox).NamingContainer) as GridDataItem);
        }

        protected void ToggleSelectedState(object sender, EventArgs e)
        {
            var headerCheckBox = (sender as CheckBox);
            foreach (GridDataItem dataItem in DocumentGrid.MasterTableView.Items)
            {
                (dataItem.FindControl("chkSelectRow") as CheckBox).Checked = headerCheckBox.Checked;
                dataItem.Selected = headerCheckBox.Checked;
            }
        }

        #endregion

        #region methods

        #region dragadndrop

        #endregion

        private void LoadMenu()
        {
            if (DocumentGrid.Items.Count == 0)
            {
                MenuDisplay.BasicTabs((Doculex) Page.Master);
            }
            else
            {
                switch (DocumentGrid.SelectedItems.Count)
                {
                    case 0:
                        MenuDisplay.BasicTabs((Doculex) Page.Master);
                        MenuDisplay.GridTab((Doculex) Page.Master);
                        break;

                    case 1:
                        MenuDisplay.ActiveDocuments((Doculex) Page.Master);
                        break;


                    default:
                        MenuDisplay.MultipleDocuments((Doculex) Page.Master);
                        break;
                }
            }


            this.FileNotesPane.Visible = false;
            this.Properties.Visible = false;

            MenuDisplay.UpdateMenu((Doculex) Page.Master);
        }

        private void CreateColumns()
        {
            List<smDocumentTypeField> documentTypeFieldList = _organization.GetDocumentTypeField(1);


            var boundColumnId = new GridBoundColumn();
            DocumentGrid.MasterTableView.Columns.Add(boundColumnId);

            boundColumnId.DataField = "Id";
            boundColumnId.UniqueName = "Id";
            boundColumnId.Visible = false;
            boundColumnId.HeaderStyle.Width = Unit.Pixel(1);
            boundColumnId.ItemStyle.Width = Unit.Pixel(1);

            boundColumnId = new GridBoundColumn();
            DocumentGrid.MasterTableView.Columns.Add(boundColumnId);

            boundColumnId.DataField = "Path";
            boundColumnId.UniqueName = "Path";
            boundColumnId.Visible = false;


            var imgeColum = new GridImageColumn();
            DocumentGrid.MasterTableView.Columns.Add(imgeColum);

            imgeColum.DataImageUrlFields = new[] {"Image"};
            imgeColum.HeaderText = "File Type";
            imgeColum.DataImageUrlFormatString = "{0}";
            imgeColum.ImageAlign = ImageAlign.Middle;
            imgeColum.AllowFiltering = false;
            imgeColum.UniqueName = "Image";


            foreach (smDocumentTypeField documentTypeField in documentTypeFieldList)
            {
                var boundColumn = new GridBoundColumn();
                DocumentGrid.MasterTableView.Columns.Add(boundColumn);

                boundColumn.DataField = documentTypeField.Name;
                boundColumn.HeaderText = documentTypeField.Header;
                boundColumn.UniqueName = documentTypeField.Name;
                boundColumn.Visible = documentTypeField.IsVisible;

                if (documentTypeField.IsVisible == false)
                {
                    _hideColum.Add(documentTypeField.Name);
                }
            }
        }

        private void LoadSettings()
        {
            //lblTitle.Text = _resources.GetString(lblTitle.ID, new CultureInfo(_culture));

            DocPreview.IconUrl = App.GetImagesFolder() + "/preview.png";
            DocPreview.TabView = SplitterSlidePaneTabView.ImageOnly;
            DocPreview.Title = _resources.GetString("TitleViewPane", new CultureInfo(_culture));
            DocPreview.UndockText =
                _resources.GetString("UndockViewPane", new CultureInfo(_culture));
            DocPreview.DockText =
                _resources.GetString("DockViewPane", new CultureInfo(_culture));
            DocPreview.ToolTip =
                _resources.GetString("ToolTipViewPane", new CultureInfo(_culture));

            PaneZone.Style.Add("position", "static");

            Properties.Visible = false;
            //FileNotesPane.Visible = false;
            ///DocPreview.Visible = false;
        }


        private void GetInfo()
        {
            _culture = App.CurrentCulture();
            _resources = App.GetMasterResources("DocumentsList");
        }


        private void LoadPreview(GridDataItem documentRow)
        {
            var newValues = new Hashtable();

            documentRow.ExtractValues(newValues);


            String fileName = newValues["FileName"].ToString();
            String path = newValues["Path"].ToString();

            string[] extension = fileName.Split('.');

            switch (extension[1].ToLower())
            {
                case "txt":
                    StreamReader oStreamReader = File.OpenText(path);
                    string contents = oStreamReader.ReadToEnd();

                    preview.InnerHtml = contents;

                    oStreamReader.Close();
                    break;

                case "pdf":


                    preview.InnerHtml =
                        "<iframe src=\"../Folder/" + fileName +
                        "\" style=\"width:718px; height:700px;\" frameborder=\"0\"></iframe>";

                    break;

                default:

                    preview.InnerHtml = "<b>Preview not available<b>";
                    break;
            }

            PaneZone.ExpandedPaneId = DocPreview.ID;
            PaneZone.DockedPaneId = DocPreview.ID;

            searchPane.Width = Unit.Empty;
            //  searchPane.Width = Unit.Pixel(20);
        }

        public void FillCheckGrid()
        {
            var selectedItems = (GridItemCollection) Session["SelectedRows"];

            if (selectedItems == null) return;

            if (selectedItems.Count == 0) return;


            foreach (GridDataItem row in DocumentGrid.MasterTableView.Items)
            {
                foreach (GridDataItem item in selectedItems)
                {
                    if (row["Id"].Text == item["Id"].Text)
                    {
                        row.Selected = true;
                        ((CheckBox) row.FindControl("chkSelectRow")).Checked = true;
                    }
                }
            }
        }

        #region Notes

        private void LoadNotes()
        {
          

            LoadSettingsNotes();

            rExpComments.ErrorMessage = _resources.GetString(rExpComments.ID, new CultureInfo(_culture));

            GridItemCollection selectedItems = DocumentGrid.SelectedItems;

            if (selectedItems == null) return;

            if (selectedItems.Count == 0) return;

            var item = (GridDataItem) selectedItems[0];

            var newValues = new Hashtable();

            item.ExtractValues(newValues);

            NotesRepeater.DataSource = _organization.GetNotes(Convert.ToInt16(newValues["Id"].ToString()));
            NotesRepeater.DataBind();

            PaneZone.DockedPaneId = FileNotesPane.ID;
            PaneZone.ExpandedPaneId = FileNotesPane.ID;
        }

        private void LoadSettingsNotes()
        {
            if (Session["Add"] != null) return;

            RadSpell1.Language = _culture;
            RadSpell1.DictionaryLanguage = _culture;

            FileNotesPane.TabView = SplitterSlidePaneTabView.ImageOnly;
            FileNotesPane.Title = _resources.GetString("TitleNotesPane", new CultureInfo(_culture));
            Properties.UndockText =
                _resources.GetString("UndockNotesPane", new CultureInfo(_culture));
            FileNotesPane.DockText =
                _resources.GetString("DockNotesPane", new CultureInfo(_culture));
            FileNotesPane.ToolTip =
                _resources.GetString("ToolTipNotesPane", new CultureInfo(_culture));

            FileNotesPane.Visible = true;
            Properties.Visible = false;
            pnlComment.Visible = false;


            var imgSave = (pnlComment.FindControl("imgSave") as ImageButton);
            var imgCancel = (pnlComment.FindControl("imgCancel") as ImageButton);
            var rExpComments = (pnlComment.FindControl("rExpComments") as RegularExpressionValidator);

            lblAddComment.Text = _resources.GetString(lblAddComment.ID, new CultureInfo(_culture));
            imgSave.ToolTip = _resources.GetString(imgSave.ID, new CultureInfo(_culture));
            imgSave.AlternateText = _resources.GetString(imgSave.ID, new CultureInfo(_culture));
            imgCancel.ToolTip = _resources.GetString(imgCancel.ID, new CultureInfo(_culture));
            imgCancel.AlternateText = _resources.GetString(imgCancel.ID, new CultureInfo(_culture));
            rExpComments.ErrorMessage = _resources.GetString(rExpComments.ID, new CultureInfo(_culture));
        }


        private void SaveComment()
        {
            string documentId = "0";
            string comment = txtComents.Text.Trim();


            if (Session["A"] != null && Session["A"].ToString().Contains("noteWS"))
            {
                string[] sessionValue = Session["A"].ToString().Split(',');
               
                 documentId = sessionValue[1].ToString();
                
            }else
            {
                 var dateKey = (GridDataItem) DocumentGrid.SelectedItems[0];

                var newValues = new Hashtable();
                dateKey.ExtractValues(newValues);

                documentId = newValues["Id"].ToString();
            }

            _organization.FileNotes = new smFileNotes
                                          {
                                              Comments = comment,
                                              UserId = App.CurrentUserId(),
                                              FileId = Convert.ToInt16(documentId),
                                              Date = DateTime.Now,
                                          };
            _organization.CreateNote();

            pnlComment.Visible = false;

            if (Session["A"] != null && Session["A"].ToString().Contains("noteWS")) LoadWSNotes(documentId);
            else  LoadNotes();

          

            lnkAddComment.Visible = true;
        }


        private void LoadWSNotes(string documentId)
        {
            LoadSettingsNotes();
            NotesRepeater.DataSource = _organization.GetNotes(Convert.ToInt16(documentId));
            NotesRepeater.DataBind();

            PaneZone.DockedPaneId = FileNotesPane.ID;
            PaneZone.ExpandedPaneId = FileNotesPane.ID;
        }
        #endregion

        #region Properties

        private void LoadProperties()
        {
            LoadSettingsProperties();

            CreateContentProperties();
            Properties.Visible = true;
            PaneZone.DockedPaneId = Properties.ID;
            PaneZone.ExpandedPaneId = Properties.ID;
        }

        private void CreateContentProperties()
        {
            GridItemCollection selectedItems = DocumentGrid.SelectedItems;

            if (selectedItems == null) return;

            if (selectedItems.Count == 0) return;


            var tbProperty = new Table();

            List<smDocumentTypeField> documentTypeFieldList = _organization.GetDocumentTypeField(1);

            LoadPreview((GridDataItem) selectedItems[0]);

            foreach (smDocumentTypeField smDocumentTypeField in documentTypeFieldList)
            {
                var row = new TableRow();

                var cell = new TableCell();
                var lbl = new Label {Text = smDocumentTypeField.Name + ":"};
                cell.CssClass = "LabelCol";
                cell.Controls.Add(lbl);
                row.Cells.Add(cell);

                foreach (GridDataItem item in selectedItems)
                {
                    var newValues = new Hashtable();
                    item.ExtractValues(newValues);

                    if (newValues[smDocumentTypeField.Name] != null &&
                        newValues[smDocumentTypeField.Name].ToString().Length > 30)
                    {
                        newValues[smDocumentTypeField.Name] = newValues[smDocumentTypeField.Name].ToString().Substring(
                            0, 30) + "...";
                    }

                    cell = new TableCell();
                    lbl = new Label
                              {
                                  Text =
                                      newValues[smDocumentTypeField.Name] == null
                                          ? null
                                          : newValues[smDocumentTypeField.Name].ToString()
                              };
                    cell.CssClass = "TextBoxCol";
                    cell.Controls.Add(lbl);
                    row.Cells.Add(cell);
                }

                tbProperty.Rows.Add(row);
            }


            PropertyList.Controls.Add(tbProperty);
        }

        private void LoadSettingsProperties()
        {
            Properties.TabView = SplitterSlidePaneTabView.ImageOnly;
            Properties.Title = _resources.GetString("TitlePropertiesPane", new CultureInfo(_culture));
            Properties.UndockText =
                _resources.GetString("UndockPropertiesPane", new CultureInfo(_culture));
            Properties.DockText =
                _resources.GetString("DockPropertiesPane", new CultureInfo(_culture));
            Properties.ToolTip =
                _resources.GetString("ToolTipPropertiesPane", new CultureInfo(_culture));

            FileNotesPane.Visible = false;
            Properties.Visible = true;
        }

       

        #endregion

        #endregion

       
    }
}



How I can do this in client side?... When user selected, findcontrol checkbox and checked or not


Regards...

3 Answers, 1 is accepted

Sort by
0
Jayesh Goyani
Top achievements
Rank 2
answered on 03 Mar 2012, 06:27 AM
Hello July,

<telerik:RadGrid ID="ClaimFormPartsGrid" runat="server" GridLines="None" Skin="Simple"
           AutoGenerateColumns="False" AllowSorting="False" AllowMultiRowSelection="true">
           <MasterTableView EditMode="InPlace" CommandItemDisplay="Top" InsertItemDisplay="Top"
               CommandItemSettings-ShowRefreshButton="False" CommandItemSettings-ShowAddNewRecordButton="True"
               AutoGenerateColumns="False" DataKeyNames="key">
               <Columns>
                   <telerik:GridEditCommandColumn UniqueName="EditCommand" />
                   <telerik:GridTemplateColumn UniqueName="CheckColumn">
                       <ItemTemplate>
                           <asp:CheckBox ID="chkTest" runat="server" AutoPostBack="true" OnCheckedChanged="chkTest_CheckedChanged" />
                       </ItemTemplate>
                   </telerik:GridTemplateColumn>
                   <telerik:GridBoundColumn UniqueName="key" DataField="key" HeaderText="Name" />
                   <telerik:GridBoundColumn UniqueName="value" DataField="value" HeaderText="Value" />
                   <telerik:GridButtonColumn UniqueName="DeleteCommand" Text="Delete" CommandName="Delete" />
               </Columns>
           </MasterTableView>
           <ClientSettings EnablePostBackOnRowClick="true">
               <Selecting AllowRowSelect="true" />
           </ClientSettings>
       </telerik:RadGrid>
protected override void OnInit(EventArgs e)
   {
       base.OnInit(e);
       this.ClaimFormPartsGrid.NeedDataSource += this.ClaimFormPartsGrid_NeedData;
       this.ClaimFormPartsGrid.ItemDataBound += this.ClaimFormPartsGrid_ItemDataBound;
       this.ClaimFormPartsGrid.ItemCommand += new GridCommandEventHandler(ClaimFormPartsGrid_ItemCommand);
   }
 
   protected void ClaimFormPartsGrid_ItemCommand(object sender, GridCommandEventArgs e)
   {
       if (e.CommandName == "RowClick")
       {
           GridDataItem item = e.Item as GridDataItem;
           CheckBox chkTest = item.FindControl("chkTest") as CheckBox;
           chkTest.Checked = item.Selected;
       }
   }
 
   protected void ClaimFormPartsGrid_NeedData(object sender, GridNeedDataSourceEventArgs e)
   {
       var source = new List<KeyValuePair<string, string>>();
       source.Add(new KeyValuePair<string, string>("1", "1"));
       source.Add(new KeyValuePair<string, string>("2", "2"));
       source.Add(new KeyValuePair<string, string>("3", "3"));
       source.Add(new KeyValuePair<string, string>("4", "4"));
       this.ClaimFormPartsGrid.DataSource = source;
   }
 
   protected void ClaimFormPartsGrid_ItemDataBound(object sender, GridItemEventArgs e)
   {
       
   }
 
 
 
 
   protected void chkTest_CheckedChanged(object sender, EventArgs e)
   {
       CheckBox chkTest = sender as CheckBox;
       GridDataItem item = chkTest.NamingContainer as GridDataItem;
       item.Selected = chkTest.Checked;
 
   }


Thanks,
Jayesh Goyani
0
July
Top achievements
Rank 2
answered on 05 Mar 2012, 03:19 PM
hello Jayesh Goyani,
I tried but does not work .
I allow selected multiple RoWs.. if I use shif + click , does nto work.


I If click in every row, lost the last selected rows.

0
Iana Tsolova
Telerik team
answered on 07 Mar 2012, 02:26 PM
Hi Julieta,

What selection are you trying to implement, client or server-side? I would suggest that you achieve your goal with client-side selection. In this case you can turn the EnableAutoPostBackOnRowClick property back to false. Instead of the GridTemplate with CheckBox, use the GridClientSelectColumn. Thus the user will be able to select multiple items by checking the select column checkboxes, using the [Shift]+click approach, or drag to select. And the checkboxes and selected items will be in sync. See this demo:
http://demos.telerik.com/aspnet-ajax/grid/examples/client/selecting/defaultcs.aspx

Let me know if this works for you

All the best,
Iana Tsolova
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
Tags
Grid
Asked by
July
Top achievements
Rank 2
Answers by
Jayesh Goyani
Top achievements
Rank 2
July
Top achievements
Rank 2
Iana Tsolova
Telerik team
Share this question
or