黑马程序员技术交流社区

标题: 如何实现前后台调用 [打印本页]

作者: 石国庆    时间: 2013-3-27 20:39
标题: 如何实现前后台调用
前后台的调用分别通过什么方法?
作者: 许庭洲    时间: 2013-3-27 22:07
前台:asp.net,C#等
后台:DB2,Oracle,Microsoft SQL Server,Sybase SQLServer,Informix,MySQL等
作者: 郑丹丹1990    时间: 2013-3-28 13:49
问的有点模糊了,可否具体下????
作者: 石国庆    时间: 2013-3-28 19:59
郑丹丹1990 发表于 2013-3-28 13:49
问的有点模糊了,可否具体下????

比如前台有一个div,数据都是从后台放到dataset里面的,怎么让数据显示在想要的div里面,不用jquery,这个和我的问题有点不一样,我现在在想这个问题
作者: 何红卫    时间: 2013-3-28 21:14
呵呵,学一下用sliverlight做网站吧,你会发现这些有关数据绑定的都是不问题了。
作者: 石国庆    时间: 2013-3-28 22:23
何红卫 发表于 2013-3-28 21:14
呵呵,学一下用sliverlight做网站吧,你会发现这些有关数据绑定的都是不问题了。 ...

听说过,没用过,想学啊,现在就这种前后台的绑定太麻烦了
作者: 黑马-杨鹏立    时间: 2013-3-28 23:03
本帖最后由 黑马-杨鹏立 于 2013-3-28 23:09 编辑

看了你的问题和大家交流的内容,我是这样理解的,你现在是对后台从数据库中取出数据不通过服务器端控件(或者说是绑定)是怎样和前台html(也就是说从cs文件中怎样放入aspx前台文件中)进行数据传递交互的,这样理解对吧?

这样的话和前台文件要想取得后台的值就按你说的放在div中。
假如你从数据库中查到数据为字符串“aaaaaaaaaaaaaaaaaaaaaaaaaaaa”;你想把他放到前台div中去,不通过控件进行传递。
那么你在后台定义一个protected string str=string.empty;然后把查到的值付给str;
在前台div包括的范围内这样输入<%=str%>,这样前台就可以拿到你说的值了。
注意,后台定义字段只能为protected  或者  public 其他的前台都不能调用。
这个涉及到页面生命周期的问题,其实浏览器请求过来先执行页面load事件,执行完才会输出前台页面(在执行load前的比如beginRequest等等我就不说了)
你想解决的问题通过这个方法就能实现了

补充下:大量字符串拼接不要用string   要用stringBuilder  通过我上面所说方法不光div  基本所有标签都可以用如果   li  标签  值多就通过循环拼接   在  tostring  输出。
作者: 张正强    时间: 2013-3-30 19:58
可以使用数据绑定控件,如果你不想使用控件,可以尝试一下这个:
前台:
<div id="load" ruant="server">
</div>
后台:
System.Text.StringBuilder strbd = new System.Text.StringBuilder();
strbd.Append("从数据库里取出数据");//这里面也可以是html代码,例如strbd.Append("<a herf='#'>#</a>");
load.InnerHtml=strbd.tostring();
效果:
<div id="load" ruant="server">
从数据库里取出数据
</div>
作者: 石国庆    时间: 2013-3-30 22:34
黑马-杨鹏立 发表于 2013-3-28 23:03
看了你的问题和大家交流的内容,我是这样理解的,你现在是对后台从数据库中取出数据不通过服务器端控件(或 ...

你的答案是理解最到位的,其实我就是想问<%%>这类语法的用法,有好几个,我有点分不清
作者: 石国庆    时间: 2013-3-30 22:34
黑马-杨鹏立 发表于 2013-3-28 23:03
看了你的问题和大家交流的内容,我是这样理解的,你现在是对后台从数据库中取出数据不通过服务器端控件(或 ...

你的答案是理解最到位的,其实我就是想问<%%>这类语法的用法,有好几个,我有点分不清
作者: 宋兴征    时间: 2013-3-30 22:56
石国庆 发表于 2013-3-28 19:59
比如前台有一个div,数据都是从后台放到dataset里面的,怎么让数据显示在想要的div里面,不用jquery,这个 ...

只要是服务端控件,在后台都可以通过ID获取到。
如果是HTML控件,可以加属性runat="server",然后通过ID在后台同样可以获取到。
纯数据展示的话,就在div里边放一个Repeater控件,绑定数据源。
增删改就用ListView,可以好好看看杨老师的视频:第12季asp.net高级
作者: 黑马-杨鹏立    时间: 2013-3-31 02:19
石国庆 发表于 2013-3-30 22:34
你的答案是理解最到位的,其实我就是想问这类语法的用法,有好几个,我有点分不清 ...

<%=(这里是写方法名调用或字段)%>    ,<%(这里可以向在后台cs中一样写后台代码)%>这个不建议用,程序判断写到cs中去,不然aspx-cs没意义了,前台可以做简单的后台调用,cs中写复杂判断。。。codebehind技术就是为了方便维护易读懂出现的<%#(做绑定用)%>。。。。。
作者: 石国庆    时间: 2013-3-31 11:23
黑马-杨鹏立 发表于 2013-3-31 02:19
,这个不建议用,程序判断写到cs中去,不然aspx-cs没意义了,前台可以做简单的后台调用,cs中写复杂 ...

越来越接近了,就是<%#(bind)%>或者<%#Eval()%>这种写法是在前台,那么他们的数据源是怎么来的那?怎么就能绑定那?后台用datatable存储吗?
作者: 黑马-杨鹏立    时间: 2013-3-31 13:14
bind是双向绑定,eval单向绑定。。。bind绑定的项可以回传到服务器进行操作,eval绑定的只是简单展示,值不回传。
数据源来至两块,手动绑定和控件绑定。。。
推荐一个控件你其他的现在很少用了
ObjectDataSouce你会用他其他的差不多就这样了。
手动绑定把数据装填到一个model里,在声明一个泛型集合list装填model。
通过 List<model> allmodel =modelManager.GetModelList("");//三层中的bll成方法调用dal中方法获得表中所有数据转成model添加到list
            GridView1.DataSource = allmodel;//控件的数据源等于list
            GridView1.DataBind();//绑定

不要控件那就是上面和你说的字符串拼接,通过stringBuilder来做



作者: 黑马-杨鹏立    时间: 2013-3-31 13:14
石国庆 发表于 2013-3-31 11:23
越来越接近了,就是或者这种写法是在前台,那么他们的数据源是怎么来的那?怎么就能绑定那?后台用datata ...


bind是双向绑定,eval单向绑定。。。bind绑定的项可以回传到服务器进行操作,eval绑定的只是简单展示,值不回传。
数据源来至两块,手动绑定和控件绑定。。。
推荐一个控件你其他的现在很少用了
ObjectDataSouce你会用他其他的差不多就这样了。
手动绑定把数据装填到一个model里,在声明一个泛型集合list装填model。
通过 List<model> allmodel =modelManager.GetModelList("");//三层中的bll成方法调用dal中方法获得表中所有数据转成model添加到list
            GridView1.DataSource = allmodel;//控件的数据源等于list
            GridView1.DataBind();//绑定

不要控件那就是上面和你说的字符串拼接,通过stringBuilder来做





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2