ASP.NET Datatable 名为“xx"的列已经属于此DataTable的解决方法?

在Page_Load外面,我声明了一个静态的DataTablepublicstaticDataTabledt=newDataTable();然后在Page_Load的if... 在Page_Load外面,我声明了一个静态的DataTable
public static DataTable dt= new DataTable();
然后在Page_Load的if (!IsPostBack)里面,给这个自定义的DataTable设定了表结构,添加一些列,页面首次载入的时候没问题
但是第二次载入就会报异常:
名为“xxxxx”的列已属于此 DataTable。

这个如果不用ViewState的话,要怎么解决?
展开
 我来答
shinehe3307
2012-06-15
知道答主
回答量:22
采纳率:0%
帮助的人:13.3万
展开全部
DataTable不要声明成static,第二次加载的时候把DataTable清空!因为你首次已经创建了列,再次创建的时候就会报错!
追问
谢谢,我按2L的方法加了个判断。
因为不想应ViewState,还得弄成全局的。
hamperfeng
2012-06-15 · TA获得超过100个赞
知道答主
回答量:73
采纳率:0%
帮助的人:31.6万
展开全部
public static DataTable dt= new DataTable();
不要写成静态的,写一个方法,专门创建表结构,然后返回DataTable 只在Page_Load外声明DataTable然后将创建出的表结构在if (!IsPostBack)赋值给声明的表结构就可以了,如果想长期保存表结构最好使用GetSet,在Set里面处理表结构,这样最好。
追问
谢谢,我按2L的方法加了个判断。
因为不想应ViewState,还得弄成全局的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fd1cbea86
2012-06-15 · 超过22用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:64万
展开全部
Page_Load的if (!IsPostBack)里面检测dt的列数是不是已经是你设置的了,如果是就不要重复设置了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式