惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
D
Docker
H
Help Net Security
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
C
Check Point Blog
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
M
MIT News - Artificial intelligence
B
Blog RSS Feed
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
美团技术团队
I
InfoQ
Blog — PlanetScale
Blog — PlanetScale

博客园 - 落木

PowerDesigner中NAME和COMMENT的互相转换,需要执行语句 获取网站根目录的urli源代码 - 落木 - 博客园 Control的Invoke和BeginInvoke 扩大范围的多条件查询 处理SQLSERVER死锁(转载) 调用DirectX进行简单的多媒体编程系列(四) 调用DirectX进行简单的多媒体编程系列(三) 调用DirectX进行简单的多媒体编程系列(二) 调用DirectX进行简单的多媒体编程系列(一) 数据库分页算法 mysql想说爱你不容易啊,从mssql迁移到mysql时,几乎所有的存储过程都得改,语法相差很大,累人!! 自己写的sqlserver和mysql的行转列通用存储过程 MSSQL优化文章 C#中编写sqlserver中自定义函数,实现复杂报表 Ajax使用Post方式提交到.aspx页面交互的例子 核单台帐表(存储过程) 清欠率(存储过程) ExtJS中的面向对象设计,组件化编程思想 - 落木 - 博客园 ExtJS中如何扩展自定义的类
用.net的GetCallbackEventReference函数来实现dropDownList联...
落木 · 2010-02-03 · via 博客园 - 落木

前台HTML代码:

 1 <html xmlns="http://www.w3.org/1999/xhtml" >
 2 <head runat="server">
 3     <title>DropWownList联动</title>
 4     <script type="text/javascript">
 5     function CallServer(arg)
 6     {
 7         var classId=arg.options[arg.selectedIndex].value;
 8         <% =GetCallBackString %>
 9         
10     }
11     function ReceiveServerData(timeMessage)
12     { 
13         //处理服务器返回的字符串,填充dropdownList2
14         var oObject = eval('(' + timeMessage + ')');//由于从服务器返回的是json数据格式,在此用eval()函数来解析成js的对象
15         var ddl=document.getElementById("DropDownList2");
16         ddl.options.length=0;
17         for(var i=0;i<oObject.length;i++)
18         {
19             var news=oObject[i];
20             var opt=new Option(news.title,news.newsId);
21             ddl.add(opt);
22             
23         }
24     } 
25     </script>
26 </head>
27 <body>
28     <form id="form1" runat="server">
29     <div>
30         <asp:DropDownList ID="DropDownList1" runat="server" onchange="CallServer(this);">
31         </asp:DropDownList>
32         <asp:DropDownList ID="DropDownList2" runat="server">
33         </asp:DropDownList>
34 </div>
35          
36     </form>
37 </body>
38 </html>

C#代码:

 1 using System;
 2 using System.Data;
 3 using System.Configuration;
 4 using System.Collections;
 5 using System.Web;
 6 using System.Web.Security;
 7 using System.Web.UI;
 8 using System.Web.UI.WebControls;
 9 using System.Web.UI.WebControls.WebParts;
10 using System.Web.UI.HtmlControls;
11 using HnDB;
12 using System.Text;
13 
14 public partial class dropDownList : System.Web.UI.Page,System.Web.UI.ICallbackEventHandler
15 {
16     IHnDB sqlDB;
17     DataSet ds = new DataSet();
18     string sqlstr = "";
19     public string GetCallBackString;
20     protected void Page_Load(object sender, EventArgs e)
21     {
22         ClientScriptManager cm = Page.ClientScript;//管理客户端JS的类
23         //下面这个函数获取一个对客户端回调的引用
24         //参数说明
25         //1.this 表示当前页面对象,它可以是page类,也可以是control,但是都必须实现System.Web.UI.ICallbackEventHandler接口
26         //2."classId"从客户端传来的参数
27         //3.客户端回调函数名称
28         //4.返回值为字符串,其本质为一个js函数供客户端调用
29         GetCallBackString = cm.GetCallbackEventReference(this"classId""ReceiveServerData""");
30 
31         //以下初始界面,绑定dropdownList
32         sqlstr = "select classid,classname from dbo.NewsClass";
33         string assemblyName = ConfigurationManager.AppSettings["assemblyName"].ToString();
34         string className = ConfigurationManager.AppSettings["className"].ToString();
35         string conStr = ConfigurationManager.ConnectionStrings["conStr"].ToString();
36         sqlDB = (new DbFactory(assemblyName, className, conStr)).HnDB;
37         ds=sqlDB.GetDataSet(sqlstr);
38         DropDownList1.DataSource = ds.Tables[0].DefaultView;
39         DropDownList1.DataTextField = "classname";
40         DropDownList1.DataValueField = "classid";
41         DropDownList1.DataBind();
42         ListItem list = new ListItem("-未选择-""0");
43         DropDownList1.Items.Insert(0, list);
44         
45 
46     }
47     private string returnStr;
48     //接收客户端的数据进行处理
49     public void RaiseCallbackEvent(string eventArgument)
50     {
51         sqlstr = "select NewsID,title from dbo.News WHERE CLASSID=" + eventArgument;
52         ds = sqlDB.GetDataSet(sqlstr);
53         StringBuilder sb=new StringBuilder();
54         sb.Append("[");
55         for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
56         {
57             sb.Append("{");
58             sb.Append("newsId:"+ds.Tables[0].Rows[i]["NewsID"].ToString()+",");
59             sb.Append("title:\"" + ds.Tables[0].Rows[i]["title"].ToString()+"\"");
60             if (i == ds.Tables[0].Rows.Count - 1)
61                 sb.Append("}");
62             else
63                 sb.Append("},");
64         }
65         sb.Append("]");
66         returnStr = sb.ToString();
67         return;
68     }
69 
70     //将处理的数据返回给客户端调用
71     public string GetCallbackResult()
72     {
73         return returnStr;
74     }
75 
76 }
77