CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

一个数据绑定问题,谢谢了

楼主fredlin(.net)2006-05-03 08:46:09 在 .NET技术 / ASP.NET 提问

private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  //   在此处放置用户代码以初始化页面  
  SqlDataAdapter   sqlDa   =new   SqlDataAdapter();  
  SqlConnection   conn=new   SqlConnection   ("Server=127.0.0.1;user   id=sa;password=;Database=Northwind");  
  SqlCommand   selectCmd   =new   SqlCommand("select   lastname,firstname,title,address,homephone   from   employees")   ;  
  selectCmd.Connection   =conn;  
  sqlDa.SelectCommand   =selectCmd;  
  DataSet   ds   =new   DataSet   ();  
  sqlDa.Fill(ds,"employees");  
  this.DataBind();  
  Response.Write(ds.Tables[0].Rows[1]["LastName"].ToString());  
  }  
   
  private   void   TextBox1_DataBinding(object   sender,   System.EventArgs   e)  
  {  
  TextBox1.Text   =ds.Tables[0].Rows[1]["LastName"].ToString();  
  }  
  ---------------------------  
  问题1:  
        TextBox1_DataBinding事件我不知道怎么生成(创建?)?于是将TextBox1_TextChanged改为TextBox1_DataBinding  
   
  2:Page_Load   时Response.Write   是有值的。为什么TextBox1.Text中看不到值呢?没有出错  
   
  3:再一个如果我是在.aspx上写<INPUT    
  id=Text2   style=""   type=text    
  value='<%#   DataBinder.Eval(ds.Tables[0].DefaultView,"[0].LastName"%>'   name=Text2>  
  这样的方式也不行。  
   
  问题比较多谢谢了   ,在线等,即刻结贴  
  问题点数:61、回复次数:20Top

1 楼Blue13845611035(曾经沧海难为水)回复于 2006-05-03 08:52:20 得分 3

private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  //   在此处放置用户代码以初始化页面  
  SqlDataAdapter   sqlDa   =new   SqlDataAdapter();  
  SqlConnection   conn=new   SqlConnection   ("Server=127.0.0.1;user   id=sa;password=;Database=Northwind");  
  SqlCommand   selectCmd   =new   SqlCommand("select   lastname,firstname,title,address,homephone   from   employees")   ;  
  selectCmd.Connection   =conn;  
  sqlDa.SelectCommand   =selectCmd;  
  DataSet   ds   =new   DataSet   ();  
  sqlDa.Fill(ds,"employees");  
  this.DataBind();  
  Response.Write(ds.Tables[0].Rows[1]["LastName"].ToString());  
   
  TextBox1.Text   =ds.Tables[0].Rows[1]["LastName"].ToString();  
  }  
  这样不能显示吗?  
   
  后面的用控件Top

2 楼Blue13845611035(曾经沧海难为水)回复于 2006-05-03 08:53:48 得分 2

后面的用HTML控件Top

3 楼Blue13845611035(曾经沧海难为水)回复于 2006-05-03 08:56:26 得分 2

3。本来就是变量不用加单引Top

4 楼fredlin(.net)回复于 2006-05-03 09:38:10 得分 0

TextBox1.Text   =ds.Tables[0].Rows[1]["LastName"].ToString();  
  }  
  这样不能显示吗?  
  ------------  
  这样可以。因为本来Response.Write   时也会有值  
   
  就是在DataBinding中不行  
   
   
   
  后面的用HTML控件  
   
  -------------------  
  用的是html   的控件<INPUT    
  id=Text2   style=""   type=text    
  value=<%#   DataBinder.Eval(ds.Tables[0].DefaultView,"[0].LastName")%>   name=Text2>  
   
   
  。本来就是变量不用加单引  
  ------------------------  
  加不加单引号应当不是问题  
  错误提示:  
  异常详细信息:   System.NullReferenceException:   未将对象引用设置到对象的实例。  
   
  可是明明有值啊。为什么是空?  
   
  Top

5 楼antiking(生活就象拉大便有时顺畅有时不顺畅.)回复于 2006-05-03 09:47:43 得分 2

TextBox1.Text   =ds.Tables[0].Rows[1]["LastName"].ToString();这样就可以显示你的数据了........Top

6 楼antiking(生活就象拉大便有时顺畅有时不顺畅.)回复于 2006-05-03 09:49:50 得分 2

不能显示的话你换成TextBox1.Text   =ds.Tables["employees"].Rows[1]["LastName"].ToString();Top

7 楼fredlin(.net)回复于 2006-05-03 10:22:02 得分 0

在DataBinding中  
   
  TextBox1.Text   =ds.Tables["employees"].Rows[1]["LastName"].ToString();  
  也不行  
  Top

8 楼jerrie_1()回复于 2006-05-03 10:31:58 得分 2

问题一:LZ可以跟踪调试TextBox1_DataBinding事件  
  问题二:跟踪调试就知道,当TextBox1_DataBinding事件时,ds为空值,LZ需要重新绑定数据,或保存到SESSION里面  
  问题三:与以上相似,LZ可以声明一个全局变量,再value=<%=str%>Top

9 楼antiking(生活就象拉大便有时顺畅有时不顺畅.)回复于 2006-05-03 10:38:20 得分 2

conn.Open();  
  你连接没有打开.Top

10 楼fredlin(.net)回复于 2006-05-03 18:41:09 得分 0

×××××我是楼主×××××  
   
  conn.Open();  
  你连接没有打开.  
  --------------------  
  试过没有用。  
   
     
   
  试过了TextBox1_DataBinding   上设断点,根本不会执行DataBinding事件。  
  是不是因为:TextBox1_DataBinding事件我不知道怎么生成(创建?)?于是将TextBox1_TextChanged改为TextBox1_DataBinding  
   
   
   
  HTML控件上value=<%=str%>这种方式不可以。看来都是因为没有触发DataBinding事件的原故  
   
   
  Top

11 楼fredlin(.net)回复于 2006-05-03 18:42:23 得分 0

HTML控件上value=<%=str%>这种方式可以     这种方式可以。但是用原来的<%#   DataBinder.Eval。。。方法不行。    
   
  加点分Top

12 楼vividboy(参数1,参数2..)回复于 2006-05-03 19:05:30 得分 5

问题1:   你定义的ds是Page_Load中的局部变量;  
                  Quote:  
                          "DataSet   ds   =new   DataSet   ();"  
                  你在TextBox1_DataBinding中是不能对其进行调用的;这个在编译的时候应该会出错的。(不知道是不是楼主没有把代码贴全)  
   
  问题2:TextBox1_DataBinding是可以自动添加的,就是TextBox的DataBinding事件。你如果仅仅改名字由于事件没有注册,当然是不会执行的。  
   
  希望对你有帮助   ^_^Top

13 楼antiking(生活就象拉大便有时顺畅有时不顺畅.)回复于 2006-05-03 21:03:18 得分 5

<INPUT    
  id=Text2   style=""   type=text    
  value='<%#   DataBinder.Eval(ds.Tables[0].DefaultView,"[0].LastName")%>'   name=Text2>Top

14 楼antiking(生活就象拉大便有时顺畅有时不顺畅.)回复于 2006-05-03 21:04:22 得分 5

加昂单引号Top

15 楼fredlin(.net)回复于 2006-05-03 21:57:50 得分 0

××××我是楼主××××  
   
  TextBox1_DataBinding是可以自动添加的,就是TextBox的DataBinding事件。你如果仅仅改名字由于事件没有注册,当然是不会执行的。  
  ----------  
  就是这个了。这个怎么做?   我是自已“仅仅改名字”的。  
  Top

16 楼tjw88560899()回复于 2006-05-04 09:51:29 得分 10

要注冊事件Top

17 楼fredlin(.net)回复于 2006-05-04 10:04:21 得分 0

要注冊事件  
  ------------  
   
   
   
  怎么注册呢?Top

18 楼lixingjian()回复于 2006-05-04 10:17:14 得分 0

广告  
  JSP,ASP和ASP.NET朋友加入,一起研究学习之用!  
   
  群号:13156076  
  Top

19 楼loverdotnet(西瓜)回复于 2006-05-04 12:04:31 得分 1

mark  
  Top

20 楼vividboy(参数1,参数2..)回复于 2006-05-04 20:11:13 得分 20

你在设计模式下,选中TextBox后按F4,在出现的“属性”栏最上面选择一个“闪电”的标志,下面就会列举所有的与TextBox相关的事件,然后双击“DataBinding”项就可以了。  
   
  ^_^Top

相关问题

关键词

得分解答快速导航

  • 帖主:fredlin
  • Blue13845611035
  • Blue13845611035
  • Blue13845611035
  • antiking
  • antiking
  • jerrie_1
  • antiking
  • vividboy
  • antiking
  • antiking
  • tjw88560899
  • loverdotnet
  • vividboy

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo