这文章为转载。。。。。
起因是这样的,我做了一个控件,这里面
包含了一个gridview控件,上面有选择按钮,但是我想不显示选择列点击行上的任意处都执行"选择"任务,在一般的页面里加下面代码就可以了
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header)
{
//e.Row.Cells[5].Visible = false;
//当鼠标停留时更改背景色
e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#ffffe7'");
//当鼠标移开时还原背景色
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
//单击行的任意列会自动选中此行
e.Row.Attributes.Add("onclick", "__doPostBack('GridView1','Select$" e.Row.RowIndex "')");
}
}
但是注意,我是做的用户控件,当控件被托拽到别的页面上的时候,控件里面用的服务器控件都会加一个本用户控件名子的前缀,这就出现问题了在
"e.Row.Attributes.Add("onclick", "__doPostBack('GridView1','Select$" e.Row.RowIndex "')");"中在新页面上的'GridView1'存在,但是叫做另一个名子了,就是比如控件叫"WebUserControl",那么在新的引用页里他就叫"WebUserControl1",原来的GridView1就叫做WebUserControl1_GridView1了,这时候,里面的选择按钮列增加onclick的事件的行就叫"WebUserControl1$GridView1"了,也就是说这样写才有效"e.Row.Attributes.Add("onclick", "__doPostBack('WebUserControl1$GridView1','Select$" e.Row.RowIndex "')");",但是问题是如果这样写死的话,如果是页面上引用两个这样的控件,就会出问题了,第二个控件叫做WebUserControl2,但是它上面的事件已经被固定了,所以第二个会不起做用,也就是说页里只能用一个控件,那做这个控件就没有意义了,我解决的办法是,引用了前台javascript的全局变量
<script type="text/javascript">
//这里如果div变成服务器端运行,那么在页里设置的样式都失效,只能在控件本上上设置,js程序在其它控件被调用后会失效
var ctrlid="null";
function tbMachineShwo(){//这个函数在控件里用一个按钮触发
ctrlid=event.srcElement.id.substr(0,15) "$GridView1";//意思就是取出这个控件在页里的id
}
</script>
然后在后台页里这样写
e.Row.Attributes.Add("onclick", "__doPostBack(ctrlid,'Select$" e.Row.RowIndex "')");
这样就能在点击任意处都加上这个onclick事件了.
分享到:
相关推荐
GridView 行单击与双击事件,功能:单击选中行 双击打开详细页面 说明:
在Android开发中,GridView是一种非常常见的布局控件,它允许我们以网格的形式展示数据,通常用于创建像照片墙、应用列表等多列显示的内容。这个"Android高级应用源码-gridview最新版本.zip"包含了关于GridView的...
在探讨如何在WinForm应用程序中获取GridView控件中选定行的标识列的值之前,我们需要先了解几个关键概念:WinForm、GridView控件以及相关的编程技术。本篇内容将围绕这些核心点展开,并提供详细的解释与示例代码。 ...
在实际应用中,Swipe-to-Select-GridView 可能会与其他功能结合使用,例如删除、复制或移动已选中的单元格。你可以通过监听选择事件并实现相应的回调方法来处理这些操作。此外,对于多选模式,组件可能还提供了取消...
1. GridView是LinearLayout的子类,它会把每个子视图(View)按照横行纵列的方式进行排列。 2. GridView通过Adapter来获取数据并将其显示在界面上。Adapter通常是BaseAdapter或CursorAdapter的子类,负责数据的绑定...
在很多应用中,我们可能需要实现GridView的选中效果,包括设置默认选中项以及选中后的视觉反馈。下面将详细讲解如何在Android中为GridView实现这些功能。 首先,我们需要理解GridView的基本用法。GridView继承自...
其中,为GridView添加行选中变色效果是一种常见的需求,能够提升用户体验,使用户更直观地感知当前选中的行。 #### 代码解析 在题目给出的代码片段中,主要实现了当鼠标悬停在GridView的某一行时,该行背景颜色会...
下面,我们就会详细介绍GridView动态添加模板列的实现方法。 GridView动态添加模板列的必要性 在实际开发中,我们经常需要根据不同的业务需求动态添加模板列,以满足不同的数据展示需求。例如,在一个电商平台中,...
GridView控件是ASP.NET Web Forms中的一个重要组件,用于展示数据集或者数据库中的表格数据。在“GridView系列---GridView分页”这个主题中,我们将深入探讨如何利用GridView实现数据的分页显示,提升用户体验并优化...
1) 数据绑定前设置列属性:在GridView的RowDataBound事件中,检查当前行是否为表头行,如果是,则设置相应的HeaderStyle-CssClass属性,比如“mergeHeader”。 2) CSS样式处理:在CSS文件中定义合并的样式,利用...
这个"Android高级应用源码-GridView添加图片DeleteGridView0.2.zip"压缩包提供了关于如何在GridView中添加图片并实现删除功能的示例代码。下面我们将详细探讨GridView的相关知识点及其在实际开发中的应用。 1. ...
- 设置GridView的属性,如列数:`android:numColumns="auto_fit"`(自动适应屏幕宽度)或`android:numColumns="3"`(固定三列)。 - 在Activity或Fragment中找到GridView并设置Adapter:`GridView gridView = ...
GridView 合并表头多重表头无错完美版(以合并 3 列 3 行 举例) **示例:** - 使用 `GroupBy` 方法。 - 示例代码略。 **解释:** - 通过 `GroupBy` 方法实现对数据的分组,从而达到合并表头的目的。 ##### 17. ...
本主题将深入探讨如何处理GridView和GridData控件的行单击与双击事件,以实现弹出详细页面和编辑状态更新的功能。 首先,GridView控件是一个强大的数据绑定控件,它能够从数据库或其他数据源动态生成表格格式的数据...
本实例主要关注如何实现GridView的固定表头和列,使得用户在滚动浏览长表格时,表头和部分列始终保持可见,提高用户体验。 GridView冻结表头和列的需求在大数据量展示时尤为重要,因为表头的可见性有助于用户在浏览...
- GridView的行数和列数不固定,可以根据屏幕大小和数据量自动调整。 2. **XML布局**: - 在示例的XML布局文件中,我们定义了一个LinearLayout作为根布局,然后添加了一个GridView。 - GridView的属性包括`...
在设计阶段,设置GridView的AutoGenerateColumns属性为true,GridView会自动生成列来展示数据源的字段。若需自定义列,可设置为false,并添加BoundField、TemplateField等控件。 在GridView中,我们可以实现多种...
7. **服务器端和客户端事件处理**:为了提供更好的用户体验,通常会结合JavaScript或jQuery在客户端实现全选/反选功能。当用户在浏览器中点击全选CheckBox时,通过AJAX更新服务器端的状态,并同步更新GridView显示。...
**知识点**:为GridView中的每一行自动添加一个编号。 - **使用模板字段**:在GridView中添加一个模板字段,并在其中计算行号。 - 示例代码:使用模板字段添加行号。 ```csharp ...