dropdownlist onchange事件后为何不显示呢?
前台页面:<script type="text/javascript">
function XmlPost(str)
{
var webFileUrl="";
if(str==1)
{
webFileUrl = "?oneid=" + escape(document.all("<%=Lbx_ClassOne.ClientID %>").value);
document.all("<%=Lbx_ClassTwo.ClientID %>").length=0;
document.all("<%=Lbx_ClassTwo.ClientID %>").options.add(new Option("=请选择姓名=",""));
document.getElementById('div1').style.display='none';
}
else
{
webFileUrl = "?twoid="+document.all("<% =Lbx_ClassTwo.ClientID %>").value;
document.getElementById('div1').style.display='block';//如果有值,则显示
}
var result = "";
var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
xmlHttp.open("Post", webFileUrl, false);
xmlHttp.send("");
result = xmlHttp.responseText;
if(result != "")
{
var piArray = result.split(",");
if(str==1)
{
for(var i=0; i<piArray.length; i++)
{
var ary1 = piArray[i].toString().split("|");
document.all("<%=Lbx_ClassTwo.ClientID %>").options.add(new Option(ary1[1].toString(),ary1[0].toString()));
}
}
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>
<asp:DropDownList ID="Lbx_ClassOne" runat="server">
<asp:ListItem Value="0">=请选择组别=</asp:ListItem>
</asp:DropDownList>
</td>
<td>
<asp:DropDownList ID="Lbx_ClassTwo" runat="server">
<asp:ListItem Value="0">=请选择姓名=</asp:ListItem>
</asp:DropDownList>
</td>
<td>
</td>
</tr>
</table>
<asp:Calendar ID="Calendar1" runat="server" OnDayRender="Calendar1_DayRender" BackColor="White" BorderColor="#69B3E0" Font-Names="Verdana" Font-Size="9pt" ForeColor="Black" Height="250px" NextPrevFormat="ShortMonth" Width="100%" BorderStyle="Solid" CellSpacing="1" SelectionMode="None">
<SelectedDayStyle BackColor="GradientActiveCaption" ForeColor="White" />
<TodayDayStyle BackColor="#999999" ForeColor="White" />
<OtherMonthDayStyle ForeColor="#999999" />
<NextPrevStyle Font-Size="8pt" ForeColor="White" Font-Bold="True" />
<DayHeaderStyle Font-Bold="True" Font-Size="8pt" ForeColor="#333333" Height="8pt" HorizontalAlign="Center" VerticalAlign="Middle" />
<TitleStyle BackColor="#1C85C7" Font-Bold="True" Font-Size="Small" ForeColor="White" BorderStyle="Solid" Height="12pt" />
<DayStyle BackColor="#CCCCCC" />
</asp:Calendar>
<div id="div1" style="display:none">
<asp:Calendar ID="Calendar2" runat="server" OnDayRender="Calendar2_DayRender" BackColor="White" BorderColor="#69B3E0" Font-Names="Verdana" Font-Size="9pt" ForeColor="Black" Height="250px" NextPrevFormat="ShortMonth" Width="100%" BorderStyle="Solid" CellSpacing="1" SelectionMode="None">
<SelectedDayStyle BackColor="GradientActiveCaption" ForeColor="White" />
<TodayDayStyle BackColor="#999999" ForeColor="White" />
<OtherMonthDayStyle ForeColor="#999999" />
<NextPrevStyle Font-Size="8pt" ForeColor="White" Font-Bold="True" />
<DayHeaderStyle Font-Bold="True" Font-Size="8pt" ForeColor="#333333" Height="8pt" HorizontalAlign="Center" VerticalAlign="Middle" />
<TitleStyle BackColor="#1C85C7" Font-Bold="True" Font-Size="Small" ForeColor="White" BorderStyle="Solid" Height="12pt" />
<DayStyle BackColor="#CCCCCC" />
</asp:Calendar> </div>
</div>
</form>
</body>
</html>
二楼为CS后台页面 --------------------编程问答-------------------- CS后台页面
SqlConnection conn1 = new SqlConnection("server=.\\SQL2005;uid=sa;pwd=gmcc;database=ot");
SqlConnection conn = new SqlConnection("server=.\\SQL2005;uid=sa;pwd=gmcc;database=run");
public string strOneid = "", strTwoid = "";
protected void Page_Load(object sender, EventArgs e)
{
if (Session["ok"] != null)
{
if (Request["oneid"] != null && Request["oneid"].ToString() != "")
{
strOneid = Request["oneid"].ToString();
}
if (Request["twoid"] != null && Request["twoid"].ToString() != "")
{
strTwoid = Request["twoid"].ToString();
}
if (strOneid != "")
{
Lbx_Class_Bind(strOneid);
}
if (!this.IsPostBack)
{
Lbx_ClassOne_Bind();
Lbx_ClassOne.Attributes.Add("onchange", "XmlPost(1)");
Lbx_ClassTwo.Attributes.Add("onchange", "XmlPost(2)");
this.Calendar1.VisibleDate = Convert.ToDateTime(DateTime.Now.AddMonths(1));
this.Calendar2.VisibleDate = Convert.ToDateTime(DateTime.Now.AddMonths(1));
}
}
else
{
Response.Redirect("../userlogin.aspx");
}
}
private void Lbx_ClassOne_Bind()
{
//默认显示分类号为1的所有子类
string dda = "";
if (Session["u_qy"].ToString() == "1")
{
dda = "select * from tbType where u_qy='1' order by u_team";
}
else if (Session["u_qy"].ToString() == "2")
{
dda = "select * from tbType where u_qy='2' order by u_team";
}
DataTable mytab = this.Get_Dt2(dda);
//绑牢控件
this.Lbx_ClassOne.DataSource = mytab;
this.Lbx_ClassOne.DataValueField = "u_team";
this.Lbx_ClassOne.DataTextField = "u_team";
this.Lbx_ClassOne.DataBind();
//添加一个空的首行
this.Lbx_ClassOne.Items.Insert(0, new ListItem("=选择组别=", ""));
}
private void Lbx_Class_Bind(string oneid)
{
string strSQL = "";
if (oneid != "")
{
strSQL = "select * from OT_user_table where u_team='" + oneid + "' order by u_team";
}
string mystr = "";
conn1.Open();
SqlCommand cmd = new SqlCommand(strSQL.ToString(), conn1);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
mystr += "," + dr["u_Labor_number"].ToString() + "|" + dr["u_name"].ToString();
}
if (mystr != "")
{
mystr = mystr.Substring(1);
}
conn1.Close();
dr.Close();
this.Response.Write(mystr);
this.Response.End();
}
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
string sql = "select * from tbBB where 工号='" + Session["u_Labor_number"].ToString() + "'";
ArrayList arr = new ArrayList();
ArrayList arr1 = new ArrayList();
ArrayList arr2 = new ArrayList();
conn.Open();
SqlCommand cm2 = new SqlCommand(sql.ToString(), conn);
SqlDataReader dt1 = cm2.ExecuteReader();
while (dt1.Read())
{
arr.Add(dt1["月份"].ToString());
arr1.Add(dt1["班次"].ToString());
}
conn.Close();
for (int i = 0; i < arr.Count; i++)
{
if (e.Day.Date.Year.ToString() + e.Day.Date.Month.ToString() == arr[i].ToString())
{
string[] strDay = arr1[i].ToString().Split('-');
if (strDay[e.Day.Date.Day].ToString() != "0")
{
e.Cell.Text = "<a id='" + e.Day.Date + "' href='javascript:' onclick=\"sel2('" + e.Day.Date.Day + "-" + strDay[e.Day.Date.Day * 2 - 1].ToString() + "')\" >" + "" + strDay[e.Day.Date.Day * 2 - 1].ToString() + " " + "<font size='4px'><strong>" + e.Day.Date.Day + "</strong></font></a>";
}
}
}
}
protected void Calendar2_DayRender(object sender, DayRenderEventArgs e)
{
if (Request["twoid"] != null)
{
string sql = "select * from tbBB where 工号='" + Request["twoid"].ToString() + "'";
ArrayList arr = new ArrayList();
ArrayList arr1 = new ArrayList();
ArrayList arr2 = new ArrayList();
conn.Open();
SqlCommand cm2 = new SqlCommand(sql.ToString(), conn);
SqlDataReader dt1 = cm2.ExecuteReader();
while (dt1.Read())
{
arr.Add(dt1["月份"].ToString());
arr1.Add(dt1["班次"].ToString());
}
conn.Close();
for (int i = 0; i < arr.Count; i++)
{
if (e.Day.Date.Year.ToString() + e.Day.Date.Month.ToString() == arr[i].ToString())
{
string[] strDay = arr1[i].ToString().Split('-');
if (strDay[e.Day.Date.Day].ToString() != "0")
{
e.Cell.Text = "<a id='" + e.Day.Date + "' href='javascript:' onclick=\"sel2('" + e.Day.Date.Day + "-" + strDay[e.Day.Date.Day * 2 - 1].ToString() + "')\" >" + "" + strDay[e.Day.Date.Day * 2 - 1].ToString() + " " + "<font size='4px'><strong>" + e.Day.Date.Day + "</strong></font></a>";
}
}
}
}
}
private DataTable Get_Dt(string sql)
{
//数据库连接串,本数据库为ACCESS数据库,当前在本目录的根目录下
//打开数据库
this.conn1.Open();
string sql1 = sql.ToString();
SqlDataAdapter myAdp = new SqlDataAdapter(sql, this.conn1);
DataTable myDt = new DataTable();
try
{
//填充数据
myAdp.Fill(myDt);
//返回数据集
return (myDt);
}
catch (SqlException ex)
{
//显示错误信息
throw ex;
}
finally
{
//关闭数据库连接
this.conn1.Close();
}
}
private DataTable Get_Dt2(string sql)
{
//数据库连接串,本数据库为ACCESS数据库,当前在本目录的根目录下
//打开数据库
this.conn.Open();
string sql1 = sql.ToString();
SqlDataAdapter myAdp = new SqlDataAdapter(sql, this.conn);
DataTable myDt = new DataTable();
try
{
//填充数据
myAdp.Fill(myDt);
//返回数据集
return (myDt);
}
catch (SqlException ex)
{
//显示错误信息
throw ex;
}
finally
{
//关闭数据库连接
this.conn.Close();
}
}
页面显示:当我没选择dropdownlist的时候
页面显示:当我选择的时候
通过测试知道,Request["twoid"].ToString()是可以读取到值的,就是在asp:Calendar页面上不显示。请教各位大侠,还有其他更好的办法吗? --------------------编程问答-------------------- 页面显示:当我没选择dropdownlist的时候
页面显示:当我选择的时候
更新下图片 --------------------编程问答-------------------- 谁可以打救我。。。 --------------------编程问答-------------------- 把你DropDownList的AutoPostBack设置为true,才可以触发OnSelectChange事件
补充:.NET技术 , ASP.NET