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

推荐订阅源

Security Latest
Security Latest
Recent Commits to openclaw:main
Recent Commits to openclaw:main
T
Threatpost
NISL@THU
NISL@THU
A
Arctic Wolf
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Tenable Blog
O
OpenAI News
Know Your Adversary
Know Your Adversary
Google Online Security Blog
Google Online Security Blog
Cloudbric
Cloudbric
PCI Perspectives
PCI Perspectives
爱范儿
爱范儿
GbyAI
GbyAI
U
Unit 42
IT之家
IT之家
Cyberwarzone
Cyberwarzone
T
The Exploit Database - CXSecurity.com
罗磊的独立博客
Last Week in AI
Last Week in AI
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
AWS News Blog
AWS News Blog
Schneier on Security
Schneier on Security
L
LINUX DO - 最新话题
Latest news
Latest news
Hacker News: Ask HN
Hacker News: Ask HN
W
WeLiveSecurity
TaoSecurity Blog
TaoSecurity Blog
Attack and Defense Labs
Attack and Defense Labs
Scott Helme
Scott Helme
Security Archives - TechRepublic
Security Archives - TechRepublic
S
Securelist
Help Net Security
Help Net Security
C
Cybersecurity and Infrastructure Security Agency CISA
V
V2EX
S
Security @ Cisco Blogs
月光博客
月光博客
P
Proofpoint News Feed
B
Blog RSS Feed
The GitHub Blog
The GitHub Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
L
LangChain Blog
博客园 - 叶小钗
C
Check Point Blog
腾讯CDC
The Cloudflare Blog
Simon Willison's Weblog
Simon Willison's Weblog

博客园 - 落木

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联动的ajax效果
落木 · 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