国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

Ajax.net中與服務器控件的交互使用

2024-07-10 13:11:52
字體:
來源:轉載
供稿:網友

  前兩天在網上下了個ajax組件體驗了一下,感覺很不錯。但后來開始想怎樣能讓它跟server控件交互呢,例如我上輸出一個列表,就只有用js一條一條html的輸出嗎?不!!現在我說說怎樣與 datagrid交互。

  注:ajax.net的組件可以到此網下載,我用的是for .net 1.1版本的。http://ajax.schwarz-interactive.de/

  1. 在引用中添加引用ajax.dll。(這個很廢話)

  2.在web.config中建立httphandler(這個當然是在system.web串里的)


<httphandlers>
    <add verb="post,get" path="ajax/*.ashx" type="ajax.pagehandlerfactory, ajax" />
</httphandlers> 

  3.在global的application_start里加上個設置

        protected void application_start(object sender, eventargs e)
       {
            ajax.utility.handlerpath = "ajax";
        }

  4.新建一個類demomethods,這個類里面提供了更新數據庫和輸出列表的方法。其實主要思想就是獲得控件運行后生成的html,然后輸出。 

 1        [ajax.ajaxmethod]
 2        public int addajaxtable(string name)
 3        {
 4            //輸入一個字符串,然后更新
 5            sqlconnection conn = new sqlconnection( system.configuration.configurationsettings.appsettings["connectionstring"] );
 6            sqlcommand cmd = new sqlcommand("insert into ajaxtable(name) values('"+name+"')", conn);
 7            cmd.connection.open();
 8            int result = cmd.executenonquery();
 9            conn.dispose();
10            cmd.dispose();
11            return result;
12        }
13
14        [ajax.ajaxmethod]
15        public string getajaxtable()
16        {
17            //這個方法就是拿到datagrid生成出來的html
18            sqlconnection conn = new sqlconnection(system.configuration.configurationsettings.appsettings["connectionstring"]);
19            sqlcommand cmd = new sqlcommand("select * from ajaxtable order by id", conn);
20            sqldataadapter ap = new sqldataadapter( cmd );
21            dataset ds = new dataset();
22            ap.selectcommand.connection.open();
23            ap.fill( ds, "db" );
24
25            conn.dispose();
26            cmd.dispose();
27
28            //實例化一個datagird類并設置好數據源
29            datagrid dg = new datagrid();
30            dg.datasource = ds.tables["db"];
31            dg.databind();
32
33            //實例化一個htmltextwriter的類
34            system.text.stringbuilder strb = new system.text.stringbuilder();
35            system.io.stringwriter sw = new system.io.stringwriter( strb );
36            system.web.ui.htmltextwriter htw = new htmltextwriter( sw );
37
38            //執行控件的render并輸出到htmltextwriter里
39            dg.rendercontrol( htw );
40
41            string s = strb.tostring();
42
43            return s;//最后就是返回這個html啦
44        }

  5.然后再建一個default.js文件,用作存放 js方法 function addajax(name)

{
 demomethods.addajaxtable(name);
 loadgrid();
}

function loadgrid()
{
 var cc=document.getelementbyid("uctd");
 cc.innerhtml=demomethods.getajaxtable().value;
}

  6.建一個default.aspx,在pageload事件里面加個注冊的東西

         private void page_load(object sender, system.eventargs e)
        {
            ajax.utility.registertypeforajax(typeof(ajaxtestprjlib.demomethods));
        }

  7.最后就是default.aspx的html和js了,呵呵

<%@ page language="c#" codebehind="default.aspx.cs" autoeventwireup="false" inherits="ajaxtextprjweb._default" %>
<!doctype html public "-//w3c//dtd html 4.0 transitional//en" >
<html>
    <head>
        <title>default</title>
        <meta name="generator" content="microsoft visual studio .net 7.1">
        <meta name="code_language" content="c#">
        <meta name="vs_defaultclientscript" content="javascript">
        <meta name="vs_targetschema" content="http://schemas.microsoft.com/intellisense/ie5">
        <script language="javascript" src="default.js"></script>
    </head>
    <body >
        <form id="form1" method="post" runat="server">
            <input type="text" id="addtextbox" maxlength="10"><input type="button" value="添加" >
            <table>
                <tr>
                    <td id="uctd"></td>
                </tr>
            </table>
        </form>
    </body>
</html>

  這樣,就能使用datagrid來輸出表格了,呵呵。總體思路其實還是比較簡單的,日后有兄弟做出更好的,請貼出來,而我也會繼續努力的。謝謝....繼續工作去....

  原文地址:http://jasmineou.cnblogs.com/archive/2006/01/19/244312.html#320070

  三個月之前,我寫了一篇關于ajax.net的post,大家看完之后反響挺大的。于是我一直想再深入研究一下,看看能不能作一些改進,但正在這時候,我的感情生活發生了些很悲慘的事...于是一直無心戀戰。三個月后的現在,我重新拿起久久沒碰過的vs.net,開始重新投入工作和學習。其實我這個也不算是什么研究,我對ajax.net框架的了解和ajax的原理只是很片面,只是我想到別人沒有想的東西罷了,希望大家以后多多交流,希望我這篇post對大家有幫助。

  注:這次用的是asp.net2.0,控件是gridview,還在用asp.net1.1的朋友不好意思了。而這次使用的ajax.net框架也有點變動,用了ajaxpro for .net2.0(其實也一樣)。

  這次的代碼我就不詳盡啦,因為實在還是比較多的。關于ajax.net的設置可以參照這篇文章ajax.net中與server控件的交互使用(一),demo可以在這里看http://210.21.123.253/ajaxtestprjweb/default.aspx(這是我的機子,大家要愛護啊,不要隨便亂搞啊,demo時間由早上9:30-18:00,還要請大家注意右上角的loading字樣...loading的時候就不要亂按了),源文件就到這里下載http://www.cnblogs.com/files/jasmineou/ajaxtestprj2.0.rar

  我解析下具體思想,其實就是將gridview放到一個uc里面,然后將uc的代碼分離去類庫里,然后頁面的ajax向服務器要uc生成出來的html,然后再用javascript寫到頁面里....~其實這個只是單單用ajax實現沒刷新罷了,在性能方面并沒有太多的提高。高手可能會笑我用這些實質上不算是用上ajax....呵呵~這個我承認。

  ps:有任何疑問可以加我的qq:50446177,驗證信息寫cnblogs with ajax

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青州市| 科技| 镇原县| 泾源县| 江陵县| 申扎县| 班戈县| 高青县| 乌兰浩特市| 青阳县| 广安市| 梁山县| 永顺县| 邳州市| 永善县| 正宁县| 筠连县| 定陶县| 宁德市| 从化市| 正蓝旗| 阿瓦提县| 嘉善县| 顺平县| 加查县| 高阳县| 营山县| 社会| 德州市| 巴林右旗| 崇仁县| 兴山县| 中牟县| 绿春县| 绥江县| 蕲春县| 宣恩县| 略阳县| 安乡县| 高台县| 修武县|