网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.ASP.NET 2.0里轻松获取数据库连接.
..Net2.0读取应用程序配置节.
.UpdatePanel和自定义控件中的客户.
.创建ASP.NET程序时候发生错误"HT.
.从 PHP 迁移到 ASP.NET.
.Asp.net 2.0 Treeview 无限级无刷.
.我的aspx为什么无法显示中文.
.把ip转换成对应的城市名.
..Net开发漫谈:关于命名空间和目.
.在ASP.NET Atlas中调用Web Servi.
.在ASP.NET页面中推荐使用覆写(O.
.巧用枚举CommandBehavior关闭Sql.
.如何解决Remoting无法传输存储过.
.ASP.NET2.0服务器控件之捕获回传.
.aspx网页以HTML形式存储的几个方.
.正则表达式中的组集合的使用.
.ASP.NET2.0的控件状态和视图状态.
.如何实现用ODBC连接MySQL和ASP.N.
.轻松解决asp.net用户ASPNET登录失.
.DataGridView 的分页处理.

GridView中利用隐藏的TemplateFied来进行数据访问

发表日期:2006-5-19


    在上一个学习随笔中我们可以利用DataKeyNames和DataKeys来进行GridView主键列的数据访问, 在后来试验中,我发现我们可以利用TemplateField来实现其他的数据访问.

<asp:TemplateField Visible="False">
     <ItemTemplate>
          <asp:Literal id="litUserName" runat="Server" Text='<%#Eval("UserName")%>'/>
     </ItemTemplate>
</asp:TemplateField>

//后台实现

String userName = ((Literal)GridView1.SelectedRow.FindControl("litUserName")).Text;    
     GridView的AutoGenerateSelectButton属性可以直接使表格实现选择,  如果不想多增加一列选择列, 我们可以利用TemplateField实现GridView的选择.

ASP.NET代码如下:

<asp:BoundField DataField="ObjectID" HeaderText="ID"/>
<asp:TemplateField>
    <HeaderTemplate>
         Name
    </HeaderTemplate>
    <ItemTemplate>
         <asp:LinkButton id="lbName" runat="Server" CommandName="Select">
            <%#Eval("Name")%>
         </asp:LinkButton>
    </ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Status" HeaderText="Status"/>
同时要给GridView增加两个事件处理RowCreated, RowCommand
//RowCreated事件处理
void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
            if (e.Row.RowType == DataControlRowType.DataRow)
            {                ((LinkButton)e.Row.FindControl("lbName")).CommandArgument = e.Row.RowIndex.ToString();
            }
}
//RowCommand事件处理
void GridView1_RowCommand(object source, System.Web.UI.WebControls.GridViewCommandEventArgs e)
{
     GridView1.SelectedIndex = int.Parse(e.CommandArgument.ToString());
}

这样在点击名称时就可以同时进行选择,不必再利用选择列.

上一篇:无限级分类的非递归实现(存储过程版) 人气:8615
下一篇:在ASP.Net 2.0中实现多语言界面的方法 人气:6679
浏览全部GridView的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐