求助:网页中后台代码使用Eval取值的问题

问题描述

本人想在后台动态的编写GridView的代码:publicvoidSetGridView(GridViewgvSearch){gvSearch.Columns.Clear();gvSearch.Columns.Add(newBoundField(){HeaderText="学号",DataField="No",ReadOnly=true});gvSearch.Columns.Add(newBoundField(){HeaderText="姓名",DataField="Name"});PanelpItemSex=newPanel();Labell=newLabel();l.Text=Convert.ToBoolean(DataBinder.Eval(this,"Sex"))?"男":"女";此句报错,显示没有Sex值,Sex值本应该是数据绑定时类的属性pItemSex.Controls.Add(l);DropDownListddlSex=newDropDownList();ddlSex.Items.Add(newListItem(){Value="male",Text="男"});ddlSex.Items.Add(newListItem(){Value="female",Text="女"});PanelpEdirSex=newPanel();pEdirSex.Controls.Add(ddlSex);gvSearch.Columns.Add(newTemplateField(){ItemTemplate=pItemSexasITemplate,EditItemTemplate=pEdirSexasITemplate});}想问一下诸位大神们,怎么实现类似这样前台代码的功能:<asp:GridViewrunat="server"CssClass="infoBackground"DataKeyNames="No"ID="gvSearch"AutoGenerateColumns="False"OnRowEditing="gvSearch_RowEditing"OnRowCancelingEdit="gvSearch_RowCancelingEdit"><Columns><asp:BoundFieldHeaderText="学号"DataField="No"ReadOnly="true"/><asp:BoundFieldHeaderText="姓名"DataField="Name"/><asp:TemplateFieldHeaderText="性别"><ItemTemplate><asp:Labelrunat="server"ID="txtSex"Text='<%#Convert.ToBoolean(Eval("Sex"))?"男":"女"%>'></asp:Label></ItemTemplate><EditItemTemplate><asp:DropDownListrunat="server"ID="ddlSex"><asp:ListItem>男</asp:ListItem><asp:ListItem>女</asp:ListItem></asp:DropDownList></EditItemTemplate></asp:TemplateField><asp:CommandFieldHeaderText="编辑"ShowEditButton="true"/></Columns></asp:GridView>即依旧是数据绑定,只不过在页面加载时GridView无任何内容,所有的Column(学号,姓名列已实现,只是带Eval()不知如何实现)都是在后台加进去。谢谢大神

解决方案

解决方案二:
你在SetGridView中调用DataBinder,此DataBinder它是什么?怎么可能有值?
解决方案三:
DataBinder只在控件绑定每一行(item)时有值。我想,如果是asp.net的设计者看到你这样使用DataBinder,一定会“后悔死”当初那样草率地弄了一个雷人的全局DataBinder概念出来。胡乱设计一个扩大了作用域访问范围的变量,我们都知道其实这是有害的。DatBinder就这样被你滥用了。虽然它在运行时报错了,但是还是应该“后悔死”的。根本不应该给你提供什么DataBinder。你这里完全是滥用的。如果你要根据数据来判断是否显示某些“列”,你可以在给控件实际绑定数据之前先去数据库里读取一条记录,然后判断你的列是否显示。这跟后续的读取所有待处理的真实数据,无关。
解决方案四:
不是这样访问的吧
解决方案五:
通过rowdatabind行绑定事件去做可能会比较方便
解决方案六:
引用2楼以专业开发人员为伍的回复:

DataBinder只在控件绑定每一行(item)时有值。我想,如果是asp.net的设计者看到你这样使用DataBinder,一定会“后悔死”当初那样草率地弄了一个雷人的全局DataBinder概念出来。胡乱设计一个扩大了作用域访问范围的变量,我们都知道其实这是有害的。DatBinder就这样被你滥用了。虽然它在运行时报错了,但是还是应该“后悔死”的。根本不应该给你提供什么DataBinder。你这里完全是滥用的。如果你要根据数据来判断是否显示某些“列”,你可以在给控件实际绑定数据之前先去数据库里读取一条记录,然后判断你的列是否显示。这跟后续的读取所有待处理的真实数据,无关。

我知道,这段代码是错的,想问一下我怎么才能实现我描述的功能

时间: 2024-09-30 05:37:21

求助:网页中后台代码使用Eval取值的问题的相关文章

c++如何向访问的网页中添加代码?

问题描述 c++如何向访问的网页中添加代码? 我有一个设想 写一个这样的程序或者插件 当其运行的时候 电脑访问某个网站时候返回的页面中会被添加上指定的代码内容 这个可以实现吗? 解决方案 可以参考http://jingyan.baidu.com/article/b907e627fb90fd46e7891c3c.html 解决方案二: 做浏览器插件.ie的bho.firefox的addon.chrome的app 它们可以拿到访问网站.页面内容.也可以网页插入js,html等.

获取数据-【求助】动态生成的checkbox如何取值??

问题描述 [求助]动态生成的checkbox如何取值?? 我动态生成了一些checkbox(从数据库中获取数据),现在想要实现获取checkbox选中或者未选中的状态来更新数据库,请问如何实现?? 解决方案 根据选中或者未选中,生成相应的update语句,然后执行就行了 解决方案二: 呢 谢谢PB的回答,可是我在遍历PlaceHolder中的checkbox控件时,for (int i = 0; i < this.PH.Controls.Count - 1; i++),那个controls.co

python 抓包 获取网页中viewstate参数和eventvalidation的值

问题描述 python 抓包 获取网页中viewstate参数和eventvalidation的值 安徽水旱情信息网http://shangqing.wswj.net/TYFW/InfoQuery/HeDao.aspx,里面有 各个站点的水情信息,选好条件后查询,每个站点的信息大概有2000多页,之前写了一个Python程序(通过httplib,pyquery)可以自动下载这些数据.但问题是:比如要下载宜昌站的数据,点击查询后进入详情页即'...HeDao1.aspx',随便点击一个页码,然后通

Java中常见的日期操作(取值、转换、加减、比较)_java

Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿.当然,我只提供了可行的解决方案,并不保证是最佳实践,欢迎讨论. 1. 日期取值 在旧版本 JDK 的时代,有不少代码中日期取值利用了 java.util.Date 类,但是由于 Date 类不便于实现国际化,其实从 JDK1.1 开始,就更推荐使用 java.util.Calendar 类进行时间和日期方面的处

easyui-嵌套在easyUI中的dategrid中的input如何逐一取值

问题描述 嵌套在easyUI中的dategrid中的input如何逐一取值 嵌套在easyUI中的dategrid中的input如何逐一取值如图的形式,如何取出input的选中值呢 解决方案 $(':radio').attr('checked',false)

asp.net-C#后台解析异形json取值

问题描述 C#后台解析异形json取值 大家看看这种json该如何在后台解析取值({""results"":[{""CityCode"":""0591""station"":""12""district"":""三环以内""freight"":&qu

jQuery中的RadioButton,input,CheckBox取值赋值实现代码_php技巧

1.jquery 获取单选组radio$("input[name='name']:checked").val(); 2.jquery获取radiobutton的下一个值$("input[name='name']:checked").next().text()$("input[name='name']:checked").val() 3.jquery 获取input的值$('#id').val() 4.jquery判断多选框checkbox$(&q

Asp.Net后台赋值,前台取值

1.声明并且赋值 1 protected bool IsTemp = false;//默认没有关联模块 2 //判断模板与模块是否关联 3 IsTemp = T_COM_UserTempModuleBll.Instance.ExistUTMTemp(temp.ID); View Code 2.前台取值 1 //模板与模块关联为true,不允许添加或删除模框:反之可以 2 var existTemp = "<%=IsTemp%>"; 3 if (existTemp == &q

新手求教!登陆验证模块在jsp中的代码数据库信息取不出来

问题描述 jsp文件如下,调试时tb_user一直是null,代码放在java文件中是可以执行的其中DAOFactory.getUserDAOInstance().findById(userid)是实现数据库dao的实例,我是初学者,请教各位大神,什么原因,万分感谢<%@pageimport="vo.Tb_User"import="dao.factory.*"%><%@pagecontentType="text/html"pag