定义了一列
<asp:BoundField DataField="OrgId" HeaderText="OrgId" Visible="true"></asp:BoundField>
从数据库取出的值放入到了里面、现在更新以后我想取出这一列的每一行的值
代码如下 DataTable dt = new DataTable("list");
dt.Columns.Add("TrmId", System.Type.GetType("System.String"));
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
DataRow dr = dt.NewRow();
HiddenField state = GridView1.Rows[i].FindControl("OrgId") as HiddenField;
dr["TrmId"] = state.Value.ToString(); }但是
dr["TrmId"] = state.Value.ToString();
报错,未将对象引用设置到对象的实例。
我个人推断可能跟绑定DataField="OrgId" 有关系。
求高手帮忙。
<asp:BoundField DataField="OrgId" HeaderText="OrgId" Visible="true"></asp:BoundField>
从数据库取出的值放入到了里面、现在更新以后我想取出这一列的每一行的值
代码如下 DataTable dt = new DataTable("list");
dt.Columns.Add("TrmId", System.Type.GetType("System.String"));
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
DataRow dr = dt.NewRow();
HiddenField state = GridView1.Rows[i].FindControl("OrgId") as HiddenField;
dr["TrmId"] = state.Value.ToString(); }但是
dr["TrmId"] = state.Value.ToString();
报错,未将对象引用设置到对象的实例。
我个人推断可能跟绑定DataField="OrgId" 有关系。
求高手帮忙。
解决方案 »
- o(︶︿︶)o 求个简单的js
- ASP.NET中使用DllImport后,如何对win32dll进行更新?
- 加载页面时,不执行ASP.NET 化码???
- ASP.NTE跟ASP
- C#写的组件能在VB.net中调用吗
- 急求软件〈〈要设计说明书》和《详细设计说明书》示例,是真正的项目文档,不是模板。
- javascript如何读取aspx中的cookie??
- SOS,救命了:我从sqlserver中用程序把数据提出来放到datatable再插入Oralce 9i中,
- 是否system.data.sql只能用于连接sqlserver 数据库而不能连接oracle数据库?
- Asp.Net 下拉框点击,触发事件后到后台获取数据绑定下拉框
- 多功能的支持在线播放的控件
- FCKeditor 问题
么有HiddenField啊,它在你的页面中不是hidden
希望大家帮忙。
HiddenField这个东西还是我在网上看到的,不太会用。谢谢帮忙提醒!~~~~~
dr["TrmId"] = state.ToString();
foreach(GridViewRow gr in GridView1.Rows)
{
HiddenField state = gr.FindControl("OrgId") as HiddenField;
if(state !=null)
dr["TrmId"] = state.Value.ToString();
}
那么在databind事件中获得这个值,然后赋予一个全局变量
用到时调用即可。
不能用FindControl 查找的
Lable state = GridView1.Rows[i].FindControl("OrgId") as Lable;
<ItemTemplate> <asp:HiddenField ID="Hd_NewsId" Value='<%#Eval("NewsId")%>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
{
DataRow dr = dt.NewRow();
HiddenField state = GridView1.Rows[i].cells[你的列号].Text;
dr["TrmId"] = state.Value.ToString(); }
GridView1.Rows[i].cells[你的列号].Text 这已经取出你的值,
你下面在做什么dr["TrmId"] = state.Value.ToString()你描述清楚点
就是没有控件放在templatefield里的话,你不可能找到它
那么一个: 用DataBinder方法找到它赋给一个值,引用它
再个: 就是添加templatefield中添加一个控件,然后findcontrol
Lable state = GridView1.Rows[i].FindControl("OrgId") as Lable; 另外你是要把数据显示在HiddenField上面
dr["TrmId"] = state.Value.ToString();这样写的意思是?
还是state.Value=dr["TrmId"].ToString();
这个答案是对的BoundField
不能用FindControl 查找的
换成
<asp:TemplateField HeaderText="OrgId">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("OrgId") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
HiddenField state = GridView1.Rows[i].FindControl("Label1") as HiddenField;
我学到了很多东西,都记下来了。
特感谢capay,成功取到了值。思路比较好,换成了lable 不用BoundField 了。
谢谢 再次感谢。以后我还会跟大家联系的。