GridView中的自定义列

GridView 能够根据数据源自动生成列,可是若是咱们须要自定义列的显示方式,让GridView的列完彻底全的由咱们本身来控制,咱们就须要用到一种特殊的列 ――TemplateField。由于GridView生成的列都是一个字段一列,若是咱们须要把两个字段合并为一列显示呢?咱们可使用模板列。咱们能够指定包含标记和控件的模版,自定义列的布局和行为,咱们能够新建一个模版列,也能够直接把已经生成的列转换为模版列来进行个性化的设置。在GridView 上单击右键,选择编辑模版,在弹出菜单中选择要编辑的列,出现列模版的编辑画面。其中HeaderTemplate――自定义列的标头部分显示的内容, FooterTemplate――脚注部分显示哪谌荩?/SPAN>ItemTemplate――是打开网页后此列数据显示的内容, EditItemTemplate――此列处于编辑状态时如何显示,AlternatingItemTemplate――交替项显示的内容,也就是说为了显示效果,能够隔行分别以不一样的风格显示。Example 1:咱们如今假设有一个表,其中有一个字段是username,咱们如今产生一个自定义列,自定义列中包含此人的照片,同时咱们假定照片的路径为 image/username.jpg。咱们首先右键点击GridView,在智能标记中,选择编辑列,添加一个模版列,而后编辑模版中的 ItemTemplate,加入一个Image控件,而后右键点击Image控件,选择Edit DataBindings,在ImageUrl中设置 Field Binding,首先我我要Bound to 数据源中的某列,由于全部图片的路径和格式是相同的,惟有名字不一样而已,因此咱们这里选中 username字段,在format中,咱们要本身定义其格式,输入image/{0}.jpg, {0}表明的就是上面绑定的字段,下面有一个 Two Way DataBinding 的复选框,就是是否双向绑定的意思,若是单向绑定,通常采用Eval,也就是说数值只从数据源传到页面上,若是双向绑定,也就是采用Bind的话,对数据的修改能够回传到数据源之中。 在web页面执行时,不一样的行由于username不一样,图片的名字也会作出相应的替换。点击肯定,而后执行当前网页,咱们就能够看到在咱们的自定义列中显示出了用户的照片。Example 2:在数据库中,存储性别的时候,通常采用bit数据类型,存储为True或者False,在GridView自动生成列的时候,通常使用 CheckedBoxField 列来显示bit类型的数据,显示在网页上就是一个单选框,若是选中,也就是Checked了,就是男的,不然就是女的。这样看起来,很不直观,下面咱们经过自定义列将性别显示为男、女。首先在GridView的Show Smart Tag中,选择编辑列,而后双击TemplateFields ,添加了一个模版列,肯定后,点击右键选择编辑模版,选中刚添加的列。在ItemTemplate中添加一个 DropListDown控件,而后编辑它的数据绑定,Edit DataBinding,把SelectedValue属性绑定到性别列。在DropListDown 控件中选择 Edit Item,就是编辑其下拉列表的项,咱们添加两个Item,一个的Text属性是男,Value设置为True,一个的Text属性设置为女,Value属性设置为False。到这里,你明白了么?由于DropDownList控件的显示文本和其值是能够不同的,咱们用数据绑定取到了性别这一列的值,True或者False,而后反映到DropDownList控件上,若是值为True,由于Text属性为男的Item的 Value为True,因此咱们如今运行网页,在新添加的列中,显示的再也不是单选框或者True、false这些没有含义的东西,而是如下拉列表的方式显示出了当前用户是 男仍是女。