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>
</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...
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>
</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...