关于数据绑定的奇怪问题

问题描述

VS2010+C#gridview中利用模板列+SqlDataSource实现绑定,结果出了个奇怪的问题,老说我源中没这个字段RoleID。。。先上aspx的代码::SqlDataSource代码:<asp:SqlDataSourceID="SqlDataSourceRoleOnly"runat="server"ConnectionString="<%$ConnectionStrings:EmergenEvalConnectionString%>"SelectCommand="SELECT[RoleID],[Role]FROM[tbRole]"></asp:SqlDataSource>改查询经检查是成功的,可以看到内容gridview中templatefield代码:<asp:TemplateFieldHeaderText="权限"SortExpression="权限"><EditItemTemplate><asp:DropDownListID="DropDownList1"runat="server"DataSourceID="SqlDataSourceRoleOnly"SelectedValue=<%#Bind("[RoleID]")%>DataValueField="权限"DataTextField="Role"Width=80onselectedindexchanged="DropDownListRole_SelectedIndexChanged"><%--每次本句中报错{"DataBinding:“System.Data.DataRowView”不包含名为“RoleID”的属性。"}--%></asp:DropDownList></EditItemTemplate><ItemTemplate><asp:DropDownListID="DropDownList1"runat="server"DataSourceID="SqlDataSourceRole"SelectedValue=<%#Bind("权限")%>DataValueField="权限"DataTextField="Role"Enabled=false></asp:DropDownList></ItemTemplate><ControlStyleWidth="60px"/></asp:TemplateField>

解决方案

解决方案二:
参考,自己修改一下。DataValueField="权限"根本就没有权限列
解决方案三:
<asp:DropDownListID="DropDownList1"runat="server"DataSourceID="SqlDataSourceRoleOnly"SelectedValue=<%#Bind("GRIDVIEW的字段")%>DataValueField="RoleID"DataTextField="Role"Width=80onselectedindexchanged="DropDownListRole_SelectedIndexChanged">
解决方案四:
数据源里不包含RoleID字段!!
解决方案五:
查看:你绑定的表里面有没有RoleID字段如何有RoleID字段就看看你你绑定的DataValueField="权限"表里有没有权限这一列
解决方案六:
感谢各位的回复。的确如上面所说,报错就是数据源没有这一列,可我的确有这一列的。我再详细说明下这里的思路:在gridview中绑定了表A,表A中的“权限”字段只存储了真实权限的一个ID,具体的权限信息放在了表B中。因此我将gridview“权限"这一列改成模板列,并内嵌了dropdownlist,这样显示,修改时都是显示的具体的权限名称,但存储进表A时,又必须写入该权限对应的ID。SqlDataSourceRoleOnly数据源绑定的就是表B下图为sqlserver中对表B的设计结构,可见的确是有该字段的。
解决方案七:
DataValueField="权限"DataTextField="Role"还是没有权限列啊,编译器哪晓得你的"权限"代表的是Role还是RoleID数据库中根本没有中文列名
解决方案八:
抱歉,DataValueField="权限"是我后来改的忘记改回来了。更改为:<asp:DropDownListID="DropDownListRole"runat="server"DataSourceID="SqlDataSourceRoleOnly"SelectedValue=<%#Bind("RoleID")%>DataValueField="RoleID"DataTextField="Role"Width=60></asp:DropDownList>结果是依旧是出错,同样的错误。
解决方案九:
gridview嵌套DropDownList数据绑定显示商品信息实例//GridView和DropDownList控件设置<asp:GridViewID="GridView1"runat="server"AllowPaging="True"AllowSorting="True"AutoGenerateColumns="False"BackColor="#DEBA84"BorderColor="#DEBA84"BorderStyle="None"BorderWidth="1px"CellPadding="3"CellSpacing="2"DataKeyNames="产品编号"ShowFooter="True"Width="642px"OnRowCreated="GridView1_RowCreated"OnRowDataBound="GridView1_RowDataBound"onpageindexchanging="GridView1_PageIndexChanging"PageSize="5"onrowediting="GridView1_RowEditing"onrowupdating="GridView1_RowUpdating"//字符关系其他设置省略<EditItemTemplate><asp:DropDownListID="ddlSellState"runat="server"AutoPostBack="True"><asp:ListItemValue="True">停售</asp:ListItem><asp:ListItemValue="False">不停售</asp:ListItem></asp:DropDownList></EditItemTemplate></asp:GridView>//处理绑定显示事件protectedvoidGridView1_RowUpdating(objectsender,GridViewUpdateEventArgse){intID=int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString());boolPaperState=bool.Parse(((DropDownList)GridView1.Rows[e.RowIndex].FindControl("ddlSellState")).SelectedValue);stringstrsql="UPDATEtb_OrderFormSET是否停售=@SellStateWHERE产品编号=@ID";SqlConnectionconn=newSqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);conn.Open();SqlCommandcomm=newSqlCommand(strsql,conn);comm.Parameters.Add(newSqlParameter("@ID",SqlDbType.Int,4));comm.Parameters["@ID"].Value=ID;comm.Parameters.Add(newSqlParameter("@SellState",SqlDbType.Bit,1));comm.Parameters["@SellState"].Value=PaperState;if(Convert.ToInt32(comm.ExecuteNonQuery())>0){Response.Write("<scriptlanguage=javascript>alert('设置成功!');location='Default.aspx'</script>");}//CodeGo.net/else{Response.Write("<scriptlanguage=javascript>alert('设置失败!');location='Default.aspx'</script>");}//取消编辑操作GridView1.EditIndex=-1;//调用自定义方法DbBind()重新绑定GridView控件中信息DbBind();}

时间: 2024-10-23 21:06:33

关于数据绑定的奇怪问题的相关文章

奇怪问题:datagrid不分页,不同页面间datagird和dropdownlist数据绑定相互影响,只显示10行数据?

问题描述 我这有4个页面,访问的是Sybase数据库中同一个数据库,但是操作的表不同.页面中有datagrid和dropdownlist控件,并且绑定数据库中的表的数据.但是不知道为什么?页面中datagrid原来分页的,但只显示10行数据,没有页码按钮.同时影响别的页面中的datagrid和dropdownlist的数据绑定也只显示10行数据.dropdownlist这个控件的绑定也只显示10条.奇怪的很?不知道为什么只显示10条数据? 解决方案 解决方案二:AllowPaging="True

有关Session的GridView奇怪的数据绑定问题!

问题描述 有两个页面,分别为A.aspx和B.aspx在A页面中添加一个Dropdownlist1和Button1控件,通过点击Button1,将Dropdownlist1选择后的值赋给一个Session变量,并跳转页面到B.aspxstringtable=DropDownList1.SelectedValue;Session["Table"]=table;Response.Redirect("B.aspx"); 在B页面中接收Session,并将其作为SQLser

Zeus实现XML-JAVA的数据绑定

xml|数据 Zeus实现XML-JAVA的数据绑定 钟家豪 (judson78@yahoo.com.cn) 2003 年 3 月 Zeus可以将JAVA对象与XML文件进行绑定,绑定使数据在J2EE中的应用更加方便.本文主要介绍Zeus的编译与使用.对绑定过程中使用的DTD和XML文件也有说明.1 ZEUS简介Enhydra是以生长于美国加利福尼亚海边的小水獭命名的非营利组织的名字.从但与著名的Apache不同,Enhydra致力于围绕Application Server的电子商务解决方案的研

实现Castor数据绑定,第4部分:把Java对象绑定到SQL数据

本文配套源码 对于多数开发人员 - 尤其是各种Java版本的用户 - 数据绑定已经和闭包.单例(singletons).Ajax一样变为常用词汇表中的一部分了.而且和其他术语一样,数据绑定也常常被错误的定义. 特别是大部分程序员在听到数据绑定 的时候,实际上想的是XML数据绑定.加上这个小小的单词XML,造成大多数程序员忽略了相当多的功能和灵活性,尤其是如果使用 Castor API的话.这是因为对于Castor而言,XML数据绑定仅仅是其中的一部分.除了绑定到XML文档之外,Castor还提供

java-新手问一个很奇怪的问题

问题描述 新手问一个很奇怪的问题 class Demo { int num = 1; int add = 2; Demo() { num = 5; add = 6; } void show() { System.out.println("Fu num="+num+" Fu add="+add); } } class DemoA extends Demo { DemoA() { this.num = 3; this.add = 4; } void show() { S

ios-遇到了一个奇怪的问题

问题描述 遇到了一个奇怪的问题 今天我改了几处代码,在界面上屏蔽删除了一些东西,在模拟器上运行没问题,但是部署到真机上后,竟然是没改代码前的效果,那些删掉的屏蔽掉的东西竟然还在.这是怎么回事? 试了好几次都这样,把真机上的app删掉重装还是这样. 解决方案 好奇怪,试试clean一下 解决方案二: 把你开发机器上的生成文件都删除了,重新生成,再部署. 解决方案三: 在分析相关参数对性能影响的时候,遇到个奇怪的问题.在效果全开的情况下:1.?????? 单独关闭Caustics效果2.??????

编译-很奇怪的“error C1083: 无法打开包括文件”!

问题描述 很奇怪的"error C1083: 无法打开包括文件"! 程序的事情真是无奇不有,昨天碰到一个问题,真是百思不得其解,编译时报告我所写的一个头文件的引用找不到,查了 配置属性->C/C++->常规->附加包含目录,是正常的,目录本来就加在里面了,更怪的是昨天碰到第一次,后来我在那个目录下建另一个头文件,然后将总是说找不到的头文件的内容copy过去,再引用到新的头文件,正常了,最后我干脆删掉总说找不到那个头文件,然后重命名新的头文件为原找不到文件的名称,也正常

ios-removeFromSuperview 不起作用了,奇怪问题

问题描述 removeFromSuperview 不起作用了,奇怪问题 简单上代码吧. 我在更新UIView时候需要先将其中已经存在的一些移除掉 if ([NSThread currentThread] == [NSThread mainThread]){ NSLog(@"before remove:%ld", [[self subviews] count]); [Helper removeAllSubViews:self]; NSLog(@"after remove:%ld

c++ widnows-GetQueuedCompletionStatus函数奇怪的错误?

问题描述 GetQueuedCompletionStatus函数奇怪的错误? 本人在UDP的客户端对socket使用了完成端口,在工作线程中,GetQueuedCompletionStatus返回0,GetLastError错误码为0x36E: $errhr 0x000003e6 内存位置访问无效.,这是什么问题呢?