点一个btn,然后手动绑定同页面的ddl,不能刷新,能用什么办法,各位
解决方案 »
- 2010年了。CuteEditor突然报未能从程序集“CuteEditor”中加载类型
- 关于几个微软dll的问题
- 怎样输出这样的结果?
- 一个头疼的问题.大家看看啊!
- 安装asp.net环境后执行aspx程序出错的问题
- asp.net UrlRewriter 问题
- 求助:windows验证模式下如何获取登录用户所属的组
- 把CrystalReportViewer托到WEB窗体中,控件上出现创建控件出错
- 在输入的时候去掉空格?
- CSDN上最强大的Asp.Net Grid的演示
- Javascript/jquery 得不到隐藏了的asp:panel里面的标签!
- javascript如何循环获取服务器端的变量值
然后在btn的click事件里写 绑定ddl的代码
就不会刷新了自己搜一下UpdatePanel怎么用吧
是在不行。搜索一下UpdatePanel 的使用方法就可以了
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="sm1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="up1" runat="server">
<ContentTemplate>
<asp:Button ID="btnBind" runat="server" Text="BindData" OnClick="Bind_Data" />
<asp:DropDownList ID="ddl1" runat="server">
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>后台: protected void Bind_Data(object sender, EventArgs e)
{
DataTable dt = this.GetData();
this.ddl1.DataSource = dt;
this.ddl1.DataValueField = "key";
this.ddl1.DataTextField = "value";
this.ddl1.DataBind();
} private DataTable GetData()
{
DataTable dt = new DataTable();
dt.Columns.Add("key", typeof(string));
dt.Columns.Add("value", typeof(string)); DataRow dr = null;
for (int i = 0; i < 10; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = "value" + i;
dt.Rows.Add(dr);
} return dt;
}
Javascript代码:var xmlhttp;function btclick()
{
if(window.ActiveXObject)
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
xmlhttp.onreadystatechange=statechange;
xmlhttp.open("POST","DataPage.aspx,true);
xmlhttp.send();
}function changeDDL()
{
var dropdownlist=document.getElementById('DropDownListDepartment');
//清空原有项
while(dropdownlist.options.length>0)
{
dropdownlist.remove(0);
}
document.getElementById('DropDownListDepartment').options.add(new Option("全部","0"));//给dropdownlist添加全部
//分割字符,加载数据到dropdownlist
var grop=new Array();
grop=retext.split(";");//首先按;分组,每组是一个ID+Name,用,隔开
//document.getElementById('mydiv').innerHTML=grop.toString();
var len=grop.length;
for(i=0;i<len-1;i++)
{
var temp=grop[i];
var obj=new Array();
obj = temp.split(",");//按,分组,把ID何Name都分开来。
val=obj[0];//值
txt=obj[1];//文本
document.getElementById('DropDownListDepartment').options.add(new Option(txt,val));//给dropdownlist添加数据
}
}function statechange()
{
if(xmlhttp.readyState==4)
{
if(xmlhttp.status==200||xmlhttp.status==0)
{
var retext=xmlhttp.responseText;
changeDDL(retext);
}
}
}
需要添加一个DataPage.aspx,写你的数据获取代码在这个页(需要引用using System.Data.SqlClient;
using System.Text;):protected void Page_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(@"Data Source=127.0.0.1\SQLEXPRESS;Initial Catalog=sample;User ID=mary;Password=1234;"); string cmdTex = "";
cmdTex = "select departmentID,departmentName from Department";
SqlCommand cmd = new SqlCommand(cmdTex, conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataTable dt = new DataTable();
conn.Open();
da.Fill(dt);
conn.Close(); StringBuilder data = new StringBuilder();
int len = dt.Rows.Count;
for (int i = 0; i < len; i++)
{
data.Append(dt.Rows[i][0].ToString() + "," + dt.Rows[i][1] + ";");
} Response.Write(data.ToString());
Response.End();//防止了返回一大串HTML代码引发其他错误。
}
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="btn" runat="server" Text="btn" />
<asp:DropDownList id="ddl" runat="server"></asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
或
<asp:Button ID="btn" runat="server" onClientClick="A()" Text="btn" />
function A()
{
AjaxMethod.GetList(get_Result);
}
function get_Result(response)
{
if (response.value != null)
{
document.all("ddl").length=0;
var ds = response.value;
if(ds != null && typeof(ds) == "object")
{
for(var i=0; i<ds.Tables[0].Rows.length; i++)
{
var name=ds.Tables[0].Rows[i].City;
var id=ds.Tables[0].Rows[i].City;
document.all("ddl").options.add(new Option(name,id));
}
}
}
return
}
}