使用AjaxPro开发四级无刷新联动下拉框

开发环境 VS.NET 2005 C# Oracle AjaxPro
最近忙没时间详细解释,先把通用的源码贴出自己看。
出于对性能的考虑,把省市两级写成JS数组,把县区(镇)两级写在 Oracle 里。通过 JS 触发 C# 去读取数据库,然后将数据回传给 JS ,再绑定显示。
操作



















using System;
using System.Data;
using System.Data.OracleClient;
public partial class Area : System.Web.UI.Page
...{
protected void Page_Load(object sender, EventArgs e)
...{
//将C#的类和枚举分别注册到JS里
AjaxPro.Utility.RegisterTypeForAjax(typeof(Area));
AjaxPro.Utility.RegisterEnumForAjax(typeof(AreaEnum));
}
/**////
/// 取得下拉框所需数据
///

/// 上一级ID
/// 县/镇
/// 返回 DataTable
[AjaxPro.AjaxMethod]
public DataTable GetDataTable(string UpID, AreaEnum ae)
...{
if (String.IsNullOrEmpty(UpID))
return null;
string link = "server=XXX;user=XXX;pwd=XXX;";
OracleConnection conn = new OracleConnection(link);
//Oracle 返回的 DataTable 里的列名全是大写,在页面取值时记得大写
string sql;
if (Enum.Equals(ae, AreaEnum.Xian))
sql = "SELECT id,name FROM City WHERE THREEID=0 AND TWOID=" + UpID;
else
sql = "SELECT id,name FROM City WHERE THREEID=" + UpID;
OracleDataAdapter adapter = new OracleDataAdapter(sql, conn);
DataTable table = new DataTable();
adapter.Fill(table);
return table;
}
}
/**////
/// 地区枚举
///

public enum AreaEnum
...{
/**////
/// 县
///

Xian,
/**////
/// 镇
///

Zhen
}
到此基本功能实现,还有些功能(通过域名\IP来判断地区并直接绑定,将选择好的地区保存,方便的读/存城市信息以便做成控件 等等)。有空再写完。
记得在 Web.config 的 加入




16:24浏览 (117)评论 (0)收藏
2007-05-30
缩略显示
JScrollPane自动滚屏

两种方法:

一、
滚动条是跟着光标走的,每显示一些内容后只要把光标位置设置到最后就可以实现了。
textArea.setCaretPosition(textArea.getText().length());
有个缺点:当单击textArea后,不能自动滚

二、
控制JScrollBar的位置来实现滚动。
JScrollPane sPane = new JScrollPane(textArea);
JScrollBar sBar = sPane.getVerticalScrollBar();
窗体显示后可用如下方法:
sBar.setValue(int value);//设置sBar的位置,value为具体的位置

可用int value = sBar.getValue();//得到上次JScrollBar的位置

sBar.getMaximum()//得到sBar允许的最大位置
sBar.getMinimum()//得到sBar允许的最小位置
比如:
你当前有个JTextPane置于JScrollPane,
获取JScrollBar 后,将其设为:sBar.setValue(textPane.getDocument().getLength());
当然要把上面这条自动滚屏的放入一个能够自动运行,或者定时运行的语句中!

你可能感兴趣的:(使用AjaxPro开发四级无刷新联动下拉框)