关于数据邦定的问题,,还有代码优化的问题。。。虚心学习!!!

aaron_lly 2005-03-10 12:25:39
在HTML控件中,我用数据邦定
<img src="/pic/<%#DataBinder.Eval(Container.DataItem,"pic")% />.gif">

在WEB控件中,我用数据邦定
<asp:Image runat="server" ID="Image1" ImageUrl='/pic/<%#DataBinder.Eval(Container.DataItem,"pic")%>.gif'></asp:Image>

我发现一个是用到了单引号,一个是用双引号,这是为什么呢?差别在哪呢?

还有,我上面的那两个控件都是放在datalist的itemtemplate模版中的,,如果我想在page_load中写
ImageUrl=xxxxxxxxxxxxxxxxx 这个时候应该怎么写呢?
如果我用HTML,可以在page_load中设置<img>的src= 的值吗?或者说如何得到以前在ASP中<input>返回的值呢?



关于代码优化的问题:下面是我写的代码

if e.CommandName="update" then
dim id as string
id=DataList1.DataKeys(e.Item.ItemIndex)
dim box as new textbox
dim boxtext=box.text
box = e.Item.FindControl("TextBox1")

dim myconn as new oledbconnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mappath(".") & "/db1.mdb")
dim myAdapter as new oledbdataadapter("select * from guestbook",myconn)
dim objcmdbld as new oledbcommandbuilder(myAdapter)
dim ds = new dataset()
dim dv = new dataview()
myAdapter.fill(ds,"guestbook")
datalist1.DataSource=ds.Tables("guestbook").DefaultView
datalist1.DataBind()

dim myobject as string
dv = ds.tables("guestbook").defaultview
dv.sort = "id"
myobject = id
dim rowindex = dv.find(myobject)
if rowindex<>-1 then
ds.Tables("guestbook").Rows(rowindex)("reply")= "reply: "+box.text
myAdapter.Update(ds, "guestbook")
datalist1.edititemIndex=-1
datalist1.databind()
end if
end if

我自己都感觉非常乱,我在处理每一个事件时都打开一次数据库。该怎么做才能将代码写的标准一些呢?听说大公司都会要求程序员按一定的规范写代码,可不可以介绍一下这方面的知识阿?


还有一个问题,,,当做完添加,或更新按钮的功能后,都需要重新邦定数据,这个时候应该怎么重新邦定呢?我的做法就是把整个打开数据库的过程粘贴过来。这么做应该是不对的吧。但是如果直接写一句datalist1.databind() 却不能正常执行。应该怎么做呢?我没办法,用了个response.redirect

sub enter_click(sender As Object,e As EventArgs)
if name.text="" then
label1.text="write your name please"
elseif title.text="" then
label1.text="title is null"
elseif message.text="" then
label1.text="leave your message please"
else
Dim strConn,strSQL As String
Dim myConn As OleDBConnection
Dim myCommand As OleDbCommand
Dim dr As OleDbDataReader
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath(".") & "/db1.mdb"
strSQL="insert into guestbook (author,title,message,pic) values ('"+name.text+"','"+title.text+"','"+message.text+"',1)"
myConn = New OleDbConnection(strConn)
myCommand = New OleDbCommand(strSQL,myConn)
myConn.Open()
myCommand.ExecuteNonQuery()
myconn.close()
response.redirect("admin.aspx")

end if


...全文
120 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingwu05 2005-03-11
  • 打赏
  • 举报
回复
你的图片路径不对
LoveCherry 2005-03-11
  • 打赏
  • 举报
回复
ImageUrl='<%#"/pic/"+DataBinder.Eval(Container.DataItem,"pic")+".gif"%>'
aaron_lly 2005-03-11
  • 打赏
  • 举报
回复
?
aaron_lly 2005-03-10
  • 打赏
  • 举报
回复
还有一个问题,,,,
http://home.goofar.com/aaronlly/admin.aspx

这是我弄的,,为什么会出错呢???
aaron_lly 2005-03-10
  • 打赏
  • 举报
回复
为什么我现在在后台引用 某个控件的ID 的时候,都提示我未声明变量呢?比如
<asp:textbox id="textbox1">
我在page_load中写 textbox1.text="hello"的时候,就会提示。但是以前就没提示过。

关于单引号,和双引号的问题,,如果把它们互换的话,就出错了阿。

ImageUrl='/pic/<%#DataBinder.Eval(Container.DataItem,"pic")%>.gif'></asp:Image>
我这么做无法正常显示图片。这应该怎么写啊?
Jack2013tong 2005-03-10
  • 打赏
  • 举报
回复
1,这个是没什么区别了
2,在后台程序中直接赋变量给他就是了 ImgUrl=变量名;
3,最好去搜一下有关数据库操作方面的贴子了,就象你这样的也没什么不可,但应该在操作完之后释放资源
ouyang_org 2005-03-10
  • 打赏
  • 举报
回复
第一个问题
<img 。。
这是HTML标记不是控件

如果要使之成为HTML服务器控件,需要加 <img .. runat=server
这样在程序中才能用ID访问该控件的属性。

至于单双引号的问题,好像<asp:标记中的属性不用引号都可以,没试过,只试过 如 <asp:TextBox Id=myid //没引号 照样运行

第二个问题
我用的是C#,不懂VB
aaron_lly 2005-03-10
  • 打赏
  • 举报
回复
?up
yipiaoqingshui 2005-03-10
  • 打赏
  • 举报
回复
第一个问题.我个人认为吧..第一个不是控件.第二个是.NET控件.至于单引,双引无所谓的..runat="server"才是他们的区别
第二个问题.不明白.哈.比较笨我
后面的..我更不知道了...VB.NET..没用过
aaron_lly 2005-03-10
  • 打赏
  • 举报
回复
怎么没人???

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧