以前做联动使用asp.net ajax控件做的,使用了webservice感觉挺麻烦。发现jquery很方便。
首先在页面引入jquery.js。文字描述太麻烦了。。直接贴关键代码吧。
- <script language="javascript">
- $(document).ready(function(){
- //
- $("#ddlDepartment").change(function(){
- $("#Projects").load("GetProject.aspx?id="+$("#ddlDepartment").val());
- });
- ///
- })
- </script>
这是aspx页面中需要联动的两个控件
- <tr>
- <td style="width: 150px; height:30px;">
- 部门:</td>
- <td style="width: 249px; height: 30px;" align="left">
- <asp:DropDownList ID="ddlDepartment" runat="server" Width="163px">
- </asp:DropDownList>
- </td>
- <td style="width: 150px; height: 30px;">
- 项目名称:</td>
- <td style="height: 30px; width: 221px;" align="left">
- <span id="Projects">
- <select id="ddlProject" name="ddlProject" style="width: 86px">
- <option selected="selected" value="0">请选择 </option>
- </select> </span>
- </td>
- </tr>
后台绑定部门下拉框的代码如下:
- private void BindDepartment()
- {
- DataTable dt=new JDOA.Content.DepartMent().GetMasterDepartMent();
- DataRow dr = dt.NewRow();
- dr["ID"] = 0;
- dr["Name"] = "请选择";
- dt.Rows.InsertAt(dr,0);
- this.ddlDepartment.DataValueField = "ID";
- this.ddlDepartment.DataTextField = "Name";
- this.ddlDepartment.DataSource = dt.DefaultView;
- this.ddlDepartment.DataBind();
- // ddlDepartment.Items.Insert(0, new ListItem("请选择 ", "-1"));
- }
GetProject.aspx页面直接在cs文件写一下代码:
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!IsPostBack)
- {
- if (Request.QueryString["id"]!=null)
- {
- CreateProjectList(int.Parse(Request.QueryString["id"].ToString()));
- }
- }
- }
- private void Page_Init(object sender, EventArgs e)
- {
- Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
- Response.Cache.SetNoStore();
- }
- public void CreateProjectList(int id)
- {
- DataTable dt = new JDOA.Content.Project().ProjectDList(id);
- string strHtml = string.Empty;
- strHtml = "<select name='ddlProject' id='ddlProject'>";
- strHtml += "<option value='0' selected>请选择</option>";
- if (dt.Rows.Count > 0)
- {
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- strHtml += "<option value='" + dt.Rows[i]["ID"].ToString() + "'>" + dt.Rows[i]["ProjectName"].ToString() + "</option>";
- }
- }
- strHtml += "</select>";
- Response.Write(strHtml);
- Response.End();
- }
至此就完成了 联动。。
我来稍微的解释下吧。虽然可能我也解释不清楚。首先是对因为做的部门和项目之间的联动。即选择部门之后得到属于这个部门的项目列表。 关键的就是一开始的js代码 意思就是在span区域内添加GetProject.aspx执行之后输出的代码。呵呵。。