需要刷新页面的, 并非无刷新联动.
前台随便弄的:
<div>
省:
<asp:DropDownList ID="ddlSheng" runat="server" Width="100px" Height="21px" AutoPostBack="True"></asp:DropDownList>
</div>
<div>
市:
<asp:DropDownList ID="ddlShi" runat="server" Width="100px" Height="21px" AutoPostBack="True"></asp:DropDownList>
</div>
<div>
区:
<asp:DropDownList ID="ddlQu" runat="server" Width="100px" Height="21px" AutoPostBack="True"></asp:DropDownList>
</div>
后台也随便弄的:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.ddlDataBind();
}
}
页面加载时首次绑定DropDownList
private void ddlDataBind() //初始数据绑定
{
//省
//方法1
List<String> ListAddItems;
using (SCDataContext db = DBClass.CreateContext())
{
var ShengList = from p in db.China
where
(p.Sheng == "省")
select (p.Sheng);
ListItems = ShengList.ToList();
}
this.ddlSheng.Items.Add("全部");
for (int i = 0; i <= ListAddItems.Count; i++)
{
this.ddlSheng.Items.Add(ListAddItems[i]);
}
//方法2
List<China> ListAddItems;
using (SCDataContext db = DBClass.CreateContext())
{
var ShengList = from p in db.China
where
(p.Sheng == "省")
select (p);
ListItems = ShengList.ToList();
}
this.ddlSheng.DataTextField = "Sheng";
this.ddlSheng.DataValueField = "Pid";
this.ddlSheng.DataSource = ListAddItems;
this.ddlSheng.DataBind();
this.ddlSheng.Items.Insert(0, new ListItem("全部"));
//市
this.ddlShi.Items.Add("全部");
//区
this.ddlQu.Items.Add("全部");
}
楼上写出两种绑定数据的方法 方法1是 效率差 方法2效率好些
方法2中
DataTextField: 绑定显示的文本,是用户所能看到的
DataValueField :绑定值的文本,用户看不到,但是开发人员能读取,方便后续的操作。
Items.Insert: 插入一个新项,具体所在位置可自定义,0为首位。
protected void ddlSheng_SelectedIndexChanged(object sender, EventArgs e)
{
//清除历史项
this.ddlShi.Items.Clear();
this.ddlShi.Items.Add("全部");
List<China> ListAddItems;
string pid = this.ddlSheng.SelectedValue.ToSting();
using (SCDataContext db = DBClass.CreateContext())
{
var ShiList = from p in db.China
where
(p.Type == "市" && SqlMethods.Like(p.Pid, pid+"%"))
select (p);
ListItems = ShiList.ToList();
}
this.ddlShi.DataTextField = "Shi";
this.ddlShi.DataValueField = "Pid";
this.ddlShi.DataSource = ListAddItems;
this.ddlShi.DataBind();
this.ddlShi.Items.Insert(0, new ListItem("全部"));
}
DropDownList 选择触发事件
this.ddlSheng.SelectedValue:读取之前DataValueField方法中保存好的值。
SqlMethods.Like:在LINQ中进行模糊查询。
LINQ修改数据库值:
var query = db.China.Where(p => p.Type == "区").Select(p => p);
China change = query.First();
change.Qu= chengge.Qu.Replace("区", "县");
db.SubmitChanges();
SubmitChanges:执行相应命令以实现对数据库的更改.