gridview编辑模板itemtemplate.docx
《gridview编辑模板itemtemplate.docx》由会员分享,可在线阅读,更多相关《gridview编辑模板itemtemplate.docx(8页珍藏版)》请在冰豆网上搜索。
gridview编辑模板itemtemplate
竭诚为您提供优质文档/双击可除
gridview,编辑模板,itemtemplate
篇一:
在aspxgridView中添加编辑模板
在aspxgridView中添加编辑模板(editForm)
由于aspxgridView默认的编辑模式有时不符合我们自己的要求,所以需要设置自己的编辑模式。
那么请一步一步跟我做。
1:
下面是aspxgridView1的前台代码
datasourceid="sqldatasource1"keyFieldname="id"onRowupdating="aspxgridView1_Rowupdating"cssFilepath="~/app_themes/glass/{0}/styles.css"csspostfix="glass">
产品编码:
")%>> imageurl="~/images/calendar_schedulehs.png"onclientclick="choosesku_onclick()">
Replacementtype="editFormupdatebutton"runat="server"> Replacementtype="editFormcancelbutton"runat="server">
可以看到我增加了一个段,切忌一定要增加
这段,否则没有“更新”和“取消”按钮。
产品编码:
")%>> imageurl="~/images/calendar_schedulehs.png"onclientclick="choosesku_onclick()">
其中的textbox1就是我们要用来更新grid中“产品编码”字段的。
然后后面跟了一个imagebutton,由于我们还要从一个字窗口中的grid中选择一个值来替代手工去输入新值(这是很常见的需求吧)。
2:
在窗体的前台中增加代码:
//下面是自动弹出窗口事件,主要是对弹出位置做了设置,可以不看这段
functionopenwindows2(url,wname,w,h,x,y,parameters){
w=w||505;
h=h||497;
x=(window.screen.width-w)/2;
y=(window.screen.height-h)/2;
if(!
parameters){parameters=
,menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no;};
mywin=
window.open(url,wname,width=+w+,height=+h+,screenx=+x+,screeny=+y+,top=+y+,left=+x+parameters);}
//下面这个事件将赋给imagebutton1来弹出子窗体。
functionchoosesku_onclick()
{
openwindows2(choosesku.aspx)
}
3:
在aspxgridView1的Rowupdating事件中写入如下代码:
protectedvoidaspxgridView1_Rowupdating(objectsender,devexpress.web.data.aspxdataupdatingeventargse){
textboxmemo=aspxgridView1.FindeditFormtemplatecontrol("textbox1")astextbox;
e.newValues["产品编码"]=memo.text;
}
4:
子窗体的前台部分(gridview,编辑模板,itemtemplate)代码,用于将子窗体中选中的grid的记录传回主窗体。
functionzdq()
{
window.opener.document.getelementbyid("chuandi1").value=window.document.getelementbyid("textbox1").value;
window.opener.document.getelementbyid("button1").click();
window.close();
}
functionongridFocusedRowchanged(){
grid.getRowValues(grid.getFocusedRowindex(),产品编码,ongetRowValues);
}
functionongetRowValues(values){
varkhbm=document.getelementbyid("textbox1");
khbm.value=values[0];}
需要注意的是,子窗体我用的也是aspxgridView,所以取得选中记录值的办法有点特殊,这里不详细说明。
5:
需要注意的是我们的textbox1在aspxgridView1中,所以子窗体传递回去的值,找不到textbox1。
所以我们需要在aspxgridView外面增加一个隐藏的textbox(chuandi1)和一个隐藏的button,其中button的事件如下:
protectedvoidbutton1_click(objectsender,eventargse)
{
textboxmemo=aspxgridView1.FindeditFormtemplatecontrol("textbox1")astextbox;
memo.text=this.chuandi1.text;
}
这样程序运行时,点击“edit”后,就会出现我们自定义的编辑画面,然后选择出新的记录传递到textbox1中去,然后点击“update”更新即可。
需要注意的是,如果需要屏蔽textbox1不能被输入(设置Readonly为true),则选择新的记录后,更新不起作用了。
不知道有什么办法能textbox1只能被选择的记录更新,而不是被输入。
篇二:
12-在gridView控件中使用templateField
导言
gridView是由一组字段(Field)组成的,它们都指定的了来自datasource中的什么属性需要用到自己的输出呈现中。
最简单的字段类型是boundField,它仅将数据简单的显示为文本。
其他的字段类型使用交互html元素(alternatehtmlelements)来显示数据。
比如说,checkboxField将被呈现为一个checkbox,其选中状态由某特定数据字段的值来决定;imageField则将某特定数据字段呈现为一个图片,当然,这个数据字段中应该放的是图片类型的数据。
超级链接和按钮的状态取决于使用hyperlinkField或buttonField字段类型的数据字段的值。
虽然checkboxField、imageField、hyperlinkField和buttonField考虑到了数据的交互视图,但它们仍然有一些相关的格式化的限制。
checkboxField只可以显示为一个单个的
checkbox,而一个imageField则只可以显示为一张图片。
如果某个字段要显示一些文本、复选框、图片还有一些其他基于不同数据的东西的时候,我们要做什么?
或者说,如果我们需要使用除了checkbox、image、hyperlink以及button之外的web控件来显示数据时,我们该怎么办?
此外,boundField只能显示一个单独的数据字段。
如果我们想要在一个gridView列中显示两个或者更多的数据字段的值的时候该怎么办呢?
为了适应这样的一个复杂的情况,gridView提供了使用模板来进行呈现的templateField。
模板可以包括静态的html、web控件以及数据绑定的代码。
此外,templateField还拥有各种可以用于不同情况的页面呈现的模板。
比如说,itemtemplate是默认的用于呈现每行中的单元格的,而edititemtemplate则用于编辑数据时的自定义界面。
在本节教程中,我们将解释如何使用templateField来更加高级的自定义gridView控件。
在上一节教程中,我们看到了如何使用databound和Rowdatabound事件处理方法来自定义基于数据的格式化。
另一个办法就是在模板中调用一个格式化方法。
在本节中,我们就会看到这种技术。
在本节中,我们将使用一些templateField来自定义雇员信息的呈现。
特别的,我们将列出所有的雇员,但我们将会把雇员的姓和名字放在一列中,把他们的雇佣日期放在一个calendar控件中,还将用一个状态列来表明他们来到公司有多久了。
1
图一:
使用三个templateField来自定义信息的显示方式
第一步:
将数据绑定到gridView
当你需要使用一些templateField来自定义显示时,我发现最简单的就是先创建一个仅包含boundField的gridView控件,然后添加一些templateField,如果需要的话,也可以将某些boundField直接转换成templateField。
好了,让我们开始本节教程吧。
首先,通过设计器往页面上添加一个gridView控件,并将一个返回雇员信息的objectdatasource绑定到它上面。
这些步骤将创建一个带有一些boundField的gridView,这些boundField对应雇员信息中不同的字段。
打开gridViewtemplateField.aspx,并从工具箱中拖一个gridView到设计器上。
从gridView的智能标签(smarttag)上选择并添加一个新的调用employeesbll类的getemployees()方法的objectdatasource控件。
2
图二:
添加一个新的调用getemployees()方法的objectdatasource控件
用这种方式绑定gridView将会自动的为雇员信息的每一个属性添加一个boundField:
employeeid、lastname、Firstname、title、hiredate、Reportsto以及country。
在这个报表中,我们不希望看到employeeid、Reportsto以及country属性。
要删除这些boundField的话,你可以:
·使用字段对话框-在gridView的智能标签的弹出菜单中点击“编辑列(”editcolumns)。
然后,在左下角的列表中选中你想要删除的boundField并点击那个带红叉的按钮,就可以删除这个boundField了。
·手工编辑gridView的声明语句-在源视图(sourceview)中,找到你想要删除的boundField,就是那些元素,删了就行了。
在你删了employeeid、Reportsto和country等boundField之后,你的gridView的标记语言代码应该像这个样子:
1 2datasourceid="objectdatasource1">
3
3
4 sortexpression="lastname"/>
5
sortexpression="Firstname"/>
67 sortexpression="hiredate"/>
8
9
让我们花点时间在浏览器中来看看我们的成果。
这时,你将看到一个表格,表格中每一个记录都是一个雇员的信息,一共有四列:
一个是雇员的姓,一个是名字,一个是头衔,还有一个是他们的受雇日期。
图三:
每一个雇员信息都显示了lastname、Firstname、title和hiredate
第二步:
将姓和名显示在一列中
现在,每一个雇员的姓和名都是分开在两列中显示的。
把它们放到一个列中显示出来也许是一个不错的主意。
要做到这一点,我们需要用到templateField。
我们可以添加一个新的templateField,给它加上一些必须的标记语言和数据绑定代码,然后删除原来的Firstname
4
和lastname这两个boundField;当然,我们也可以将Firstname
这个boundField直接转换成一个templateField,编辑它以加上lastname的值,然后再删除lastname这个boundField。
两种办法都行,不过我个人还是比较喜欢直接转换的那种,因为这种方式可以自动的添加一个含有web控件和相应的数据绑定代码的itemtemplate和edititemtemplate,它们可以用来模仿一个boundField的呈现和功能。
这样做的好处自然是不言而喻的,因为转换的过程已经帮我们做了很多事情,那我们当然就可以节约不少的时间了。
要将一个boundField转换成templateField,我们可以在gridView的智能标签的弹出菜单中点击“编辑列”(editcolumns)。
在弹出对话框的左下角的列表中选择需要转换的boundField,然后点击右下角的“将此列转换成模板列”(convertthisfieldintoatemplateField)即可。
图四:
在字段对话框中,将一个绑定列转换成一个模板列
让我们继续将Firstname这个boundField转换成templateField。
在这个更改之后,设计器中并没有什么明显的不同。
这是因为将boundField转换成templateField时,其实是创
5
篇三:
十二:
在gridView控件中使用templateField
作者:
heker20xx字体:
[增加减小]类型:
转载时间:
20xx-05-06我要评论
本文主要讲解在gridView控件中如何使用templateField,从而更加高级的自定义gridView,实现自定义列表的功能。
导言
gridView是由一组字段(Field)组成的,它们都指定的了来自datasource中的什么属性需要用到自己的输出呈现中。
最简单的字段类型是boundField,它仅将数据简单的显示为文本。
其他的字段类型使用交互html元素(alternatehtmlelements)来显示数据。
比如说,checkboxField将被呈现为一个checkbox,其选中状态由某特定数据字段的值来决定;imageField则将某特定数据字段呈现为一个图片,当然,这个数据字段中应该放的是图片类型的数据。
超级链接和按钮的状态取决于使用hyperlinkField或buttonField字段类型的数据字段的值。
虽然checkboxField、imageField、hyperlinkField和buttonField考虑到了数据的交互视图,但它们仍然有一些相关的格式化的限制。
checkboxField只可以显示为一个单个的checkbox,而一个imageField则只可以显示为一张图片。
如果某个字段要显示一些文本、复选框、图片还有一些其他基于不同数据的东西的时候,我们要做什么?
或者说,如果我们需要使用除了checkbox、image、hyperlink以及button之外的web控件来显示数据时,我们该怎么办?
此外,boundField只能显示一个单独的数据字段。
如果我们想要在一个gridView列中显示两个或者更多的数据字段的值的时候该怎么办呢?
为了适应这样的一个复杂的情况,gridView提供了使用模板来进行呈现的templateField。
模板可以包括静态的html、web控件以及数据绑定的代码。
此外,templateField还拥有各种可以用于不同情况的页面呈现的模板。
比如说,itemtemplate是默认的用于呈现每行中的单元格的,而edititemtemplate则用于编辑数据时的自定义界面。
在本节教程中,我们将解释如何使用templateField来更加高级的自定义gridView控件。
在上一节教程中,我们看到了如何使用databound和Rowdatabound事件处理方法来自定义基于数据的格式化。
另一个办法就是在模板中调用一个格式化方法。
在本节中,我们就会看到这种技术。
在本节中,我们将使用一些templateField来自定义雇员信息的呈现。
特别的,我们将列出所有的雇员,但我们将会把雇员的姓和名字放在一列中,把他们的雇佣日期放在一个calendar控件中,还将用一个状态列来表明他们来到公司有多久了。
图一:
使用三个templateField来自定义信息的显示方式
第一步:
将数据绑定到gridView
当你需要使用一些templateField来自定义显示时,我发现最简单的就是先创建一个仅包含boundField的gridView控件,然后添加一些templateField,如果需要的话,也可以将某些boundField直接转换成templateField。
好了,让我们开始本节教程吧。
首先,通过设计器往页面上添加一个gridView控件,并将一个返回雇员信息的objectdatasource绑定到它上面。
这些步骤将创建一个带有一些boundField的gridView,这些boundField对应雇员信息中不同的字段。
打开gridViewtemplateField.aspx,并从工具箱中拖一个gridView到设计器上。
从gridView的智能标签(smarttag)上选择并添加一个新的调用employeesbll类的getemployees()方法的objectdatasource控件。