当前位置 > 首页 > Asp.net

[原创]ExtAspNet秘密花园(二十) — 表格之模板列与编辑框

11/2/2012 8:59:00 AM来源:Asp.net

前面我们已经多次见到模板列,只不过那些模板列中放置的都是文本(asp:Label)控件,而本章将会介绍模板列和编辑框(文本输入框、下拉列表、单选框、复选框等)是如何交互的。

 

模板列中只能放置Asp.Net控件

这是ExtAspNet的一个限制,其实在ExtAspNet中只有如下三个地方可以放置Asp.Net控件:

  • 和PageManager控件同级别,也就是form标签的内部;
  • ContentPanel控件内部;
  • 表格中模板列的内部。

 

模板列中的文本输入框

下面通过一个示例讲述如何绑定数据到模板列中的输入框,以及如何在后台代码中获取这些输入框的值,例子的ASPX标签:

1: <ext:Grid ID="Grid1" ShowBorder="true" ShowHeader="true" Title="表格" Width="800px" 2: runat="server" DataKeyNames="Id,Name"> 3: <Columns> 4: // 省略其他列... 5: <ext:TemplateField HeaderText="分组" Width="100px"> 6: <ItemTemplate> 7: <asp:TextBox ID="tbxGroupName" runat="server" Width="80px" 8: Text='<%# Eval("Group") %>'></asp:TextBox> 9: </ItemTemplate> 10: </ext:TemplateField> 11: </Columns> 12: </ext:Grid>

这里直接通过Asp.Net控件TextBox的Text属性来绑定数据,非常简单直观。现在的页面效果:

image

 

如何在后台获得这些可能已经被用户修改过的输入框的值呢,来看下示例代码:

1: protected void Button1_Click(object sender, EventArgs e) 2: { 3: StringBuilder sb = new StringBuilder(); 4: sb.Append("<table style=\"width:350px;\"><tr><th>编号</th><th>姓名</th><th>用户输入的分组号</th></tr>"); 5: for (int i = 0, count = Grid1.Rows.Count; i < count; i++) 6: { 7: sb.Append("<tr>"); 8: object[] rowDataKeys = Grid1.DataKeys[i]; 9: sb.AppendFormat("<td>{0}</td>", rowDataKeys[0]); 10: sb.AppendFormat("<td>{0}</td>", rowDataKeys[1]); 11: 12: GridRow row = Grid1.Rows[i]; 13: System.Web.UI.WebControls.TextBox tbxGroupName = (System.Web.UI.WebControls.TextBox)row.FindControl("tbxGroupName"); 14: sb.AppendFormat("<td>{0}</td>", tbxGroupName.Text); 15:   16: sb.Append("<tr>"); 17: } 18:   19: sb.Append("</table>"); 20:   21: labResult.Text = sb.ToString(); 22: }

其实也很简单,仅需如下步骤:

  1. 为模板列中的输入框控件设置ID,本例中是tbxGroupName;
  2. 后台代码中,先根据行索引获取当前行实例 GridRow row = Grid1.Row[rowIndex];
  3. 调用行的FindControl方法查找其中的Asp.Net控件 (System.Web.UI.WebControls.Te

  • 推荐:Web调试代理工具 Fiddler

    12/7/2009 11:44:00 PM

    阅读: 109 评论: 1 作者: 快乐学习 发表于 2009-12-07 22:41 原文链接   在 《信息系统开发平台OpenExpressApp - 配置CSLA的WCF数据门户代

  • 4/23/2009 3:07:00 PM

    昨天,作为学院谈人才培养会议的一个观众,心里顿生迷惘。 作为一个计算机应用的研究生,我真不知道我能不能名副其实。我真不知道,我该学习哪一块。至少,在本科我还知道我是学软件工程的,虽然说

  • Could not load the assembly 'Web_deploy'. Make sure that it is compiled before accessing the page.

    9/21/2009 10:01:00 PM

    摘要: 网站在本地能运行,但发到服务器上,在根目录的子文件夹community里的页面无法访问,不知道是什么原因。有高手知道么? 作者资料: youxin233 我的主页 个人资料

  • 你可能也许或者maybe不知道的----他们有多牛?

    4/17/2009 8:40:00 PM

    摘要: 好像见过《你不知道的.NET》,前两天又见一篇《你不能相信....》。唉,不知道是不是每个人都有一些觉得好像只有自己知道的超级秘密,想广播给大家,然而也许大家看了发现是很多年前的陈年旧事了。

  • 6.4 流水账-拖拽,又见拖拽

    6/5/2009 4:06:00 PM

    Technorati 标签: WPF , DragDrop 通过 上一篇 的学习,已经可以实现 跨窗口的拖拽 ,而且可以在像explorer那样显示图标。 但是

  • Asp.net 在三层架构中事务的使用

    2/1/2012 6:23:00 PM

    再我知道的.net中,执行事务有两种方法,一种是自动事物,使用起来相当简单,但是需要配置服务器,如果你用的是web共享主机,即没有权限配置自己的服务器,那就没必要用这种了,接下了我讲下.net中最普

  • 调整QT字体大小的一小段代码

    7/10/2009 9:29:00 PM

    在做一些应用的时候,可能会随时动态的改变一些控件的大小(比如QLabel),如果控件里的文字的大小不随之变化的话,就很容易出现太小,或者超出控件的情况发生。 可以使用下面的代码来调整控

  • 将Windows Live Writer打造为“所见即所得”编辑器

    8/18/2009 2:05:00 AM

    摘要: Windows Live Writer的最大优势之一,便是可以自动获取目标博客的样式,然后让用户在特定的样式环境下编写文章。我们可以利用它在特定样式环境下编写HTML内容,这篇文章将会提供一

  • Getting Started with the MVVM Pattern in Silverlight Applications

    12/9/2009 5:01:00 PM

    With the increasing popularity of Silverlight as an application development framework the discussio

  • Asp.Net MVC3 简单入门第一季(三)详解Controller之Filter

    6/15/2011 9:18:00 AM

    前言 前面两篇写的比较简单,刚开始写这个系列的时候我面向的对象是刚开始接触 Asp . NetMVC 的朋友,所以写的尽量简单。所以写的没多少技术含量。把这些技术总结出来,然后一简