C# : row-clickable GridView and get and set gridview rows using JavaScript

Complete C# code:

----------------

using System;

using System.ComponentModel;

using System.Configuration;

using System.Web.UI;

using System.Web.UI.WebControls;

namespace CustomGridView

{

/// <summary>/// Summary description for ClickableGridView/// </summary>publicclass ClickableGridView : GridView

{

publicstring RowCssClass

{

get

{

string rowClass = (string)ViewState["rowClass"];

if (!string.IsNullOrEmpty(rowClass))

return rowClass;

elsereturnstring.Empty;

}

set

{

ViewState["rowClass"] = value;

}

}

publicstring HoverRowCssClass

{

get

{

string hoverRowClass = (string)ViewState["hoverRowClass"];

if (!string.IsNullOrEmpty(hoverRowClass))

return hoverRowClass;

elsereturnstring.Empty;

}

set

{

ViewState["hoverRowClass"] = value;

}

}

privatestaticreadonlyobject RowClickedEventKey = newobject();

publicevent GridViewRowClicked RowClicked;

protectedvirtualvoid OnRowClicked(GridViewRowClickedEventArgs e)

{

if (RowClicked != null)

RowClicked(this, e);

}

protectedoverridevoid RaisePostBackEvent(string eventArgument)

{

if (eventArgument.StartsWith("rc"))

{

int index = Int32.Parse(eventArgument.Substring(2));

GridViewRowClickedEventArgs args = new GridViewRowClickedEventArgs(Rows[index]);

OnRowClicked(args);

}

elsebase.RaisePostBackEvent(eventArgument);

}

protectedoverridevoid PrepareControlHierarchy()

{

base.PrepareControlHierarchy();

for (int i = 0; i < Rows.Count; i++)

{

string argsData = "rc" + Rows[i].RowIndex.ToString();

Rows[i].Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(this, argsData));

if (RowCssClass != string.Empty)

Rows[i].Attributes.Add("onmouseout", "this.className='" + RowCssClass + "';");

if (HoverRowCssClass != string.Empty)

Rows[i].Attributes.Add("onmouseover", "this.className='" + HoverRowCssClass + "';");

}

}

}

publicclass GridViewRowClickedEventArgs : EventArgs

{

private GridViewRow _row;

public GridViewRowClickedEventArgs(GridViewRow aRow)

: base()

{

_row = aRow;

}

public GridViewRow Row

{

get

{ return _row; }

}

}

publicdelegatevoid GridViewRowClicked(object sender, GridViewRowClickedEventArgs args);

}

I am having following example to access gridview rows and columns using JAVA Script. You

can call setCellValue to set the value of selected row/column cell.

<script language="javascript" type="text/javascript">

var gridViewCtlId = '<%=ctlGridView.ClientID%>';

var gridViewCtl = null;

var curSelRow = null;

var curRowIdx = -1;

function getGridViewControl()

{

if (null == gridViewCtl)

{

gridViewCtl = document.getElementById(gridViewCtlId);

}

}

function onGridViewRowSelected(rowIdx)

{

var selRow = getSelectedRow(rowIdx);

if (null != selRow)

{

curSelRow = selRow;

var cellValue = getCellValue(rowIdx, 0);

alert(cellValue);

}

}

function getSelectedRow(rowIdx)

{

return getGridRow(rowIdx);

}

function getGridRow(rowIdx)

{

getGridViewControl();

if (null != gridViewCtl)

{

return gridViewCtl.rows[rowIdx];

}

return null;

}

function getGridColumn(rowIdx, colIdx)

{

var gridRow = getGridRow(rowIdx);

if (null != gridRow)

{

return gridRow.cells[colIdx];

}

return null;

}

function getCellValue(rowIdx, colIdx)

{

var gridCell = getGridColumn(rowIdx, colIdx);

if (null != gridCell)

{

return gridCell.innerText;

}

return null;

}

function setCellValue(rowIdx, colIdx)

{

var gridCell = getGridColumn(rowIdx, colIdx);

gridCell.innerText = "Your value";

}

</script>

Regards

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大内老A

以上下文(Context)的形式创建一个共享数据的容器

在很多情况下我们具有这样的需求:为一组相关的操作创建一个执行上下文并提供一个共享的数据容器,而不是简单地定义一个全局变量,或者将数据通过参数传来传去。这样的上下...

21750
来自专栏流柯技术学院

HttpClient在HTTP协议接口测试中的使用

TTP协议的接口测试中,使用到最多的就是GET请求与POST请求,其中POST请求有FORM参数提交请求与RAW请求,下面我将结合HttpClient来实现一下...

36620
来自专栏C#

将DataTable转换成CSV文件

    DataTable用于在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表。CSV文件最早用在简单的数据库里,由于其格式简单,...

22960
来自专栏大内老A

深入理解C# 3.x的新特性(1): Anonymous Type

在C#3.0中,引入了一个新的Feature:Anonymous Method,允许我们已Inline的方式来定义Delegate,为Developer在Cod...

44280
来自专栏c#开发者

asp.net回调javascript

using System; using System.Collections; using System.IO; using System.Text; ...

33850
来自专栏lgp20151222

drool-6.5的自学demo

16220
来自专栏C# 编程

C# 基于泛型的自定义线性节点链表集合示例

本例子实现了如何自定义线性节点集合,具体代码如下: using System; using System.Collections; using System.C...

23000
来自专栏技术之路

Gridview行上下移动自己做的一个小例子(第一种方法)

今天没有什么事做,就写了一个GridView行上下移动的小例子。 方法有好多种,我先写第一种。 没有什么技术含量 思路: 把要上移或下移的id 与它的临近行的i...

21080
来自专栏跟着阿笨一起玩NET

linq to sql 扩展方法

9600
来自专栏菩提树下的杨过

MSDN官方的ASP.Net异步页面的经典示例代码

示例1.演示异步获取一个网址的内容,处理后显示在OutPut这一Label上 using System; using System.Web; using S...

25550

扫码关注云+社区

领取腾讯云代金券