用js动态填充的年月日(分别用三个hs存)数据,在.cs文件中就不能获得选择的年月日吗?
   该怎么获取呢?
   .aspx和.cs文件有什么样内在关系?
js:
   function YYYYMMDDstart(){
MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var y = new Date().getFullYear();
for (var i = (y-40); i < (y-16); i++){
document.getElementById("year").options.add(new Option(" "+ i +" 年", i));
}
for (var i = 1; i < 13; i++){
document.getElementById("month").options.add(new Option(" " + i + " 月", i));
}
document.getElementById("year").value = y;
document.getElementById("month").value = new Date().getMonth() + 1;

var n = MonHead[new Date().getMonth()];
if (new Date().getMonth() ==1 && IsPinYear(YYYYvalue)) n++;
writeDay(n); 
document.getElementById("day").value = new Date().getDate();
}

if(document.attachEvent){
window.attachEvent("onload", YYYYMMDDstart);
}else{
window.addEventListener('load', YYYYMMDDstart, false);
}
//年发生变化时日期发生变化(主要是判断闰平年)
function YYYYDD(str){ 
var MMvalue = document.getElementById("month").options[document.getElementById("month").selectedIndex].value;
if (MMvalue == ""){ 
var e = document.getElementById("day");
optionsClear(e);
return;
}
var n = MonHead[MMvalue - 1];
if (MMvalue ==2 && IsPinYear(str)){ 
n++;
}
writeDay(n)
}
//月发生变化时日期联动
function MMDD(str){ 
var YYYYvalue = document.getElementById("year").options[document.getElementById("year").selectedIndex].value;
if (YYYYvalue == ""){ 
var e = document.getElementById("day");
optionsClear(e);
return;
}
var n = MonHead[str - 1];
if (str ==2 && IsPinYear(YYYYvalue)){
n++;
}
writeDay(n)
}
//据条件写日期的下拉框
function writeDay(n){ 
var e = document.getElementById("day");
optionsClear(e);
for (var i=1; i<(n+1); i++){
e.options.add(new Option(" "+ i + " 日", i));
}
}
//判断是否闰平年
function IsPinYear(year){ 
return(0 == year%4 && (year%100 !=0 || year%400 == 0));
}
function optionsClear(e){
e.options.length = 1;
}
控件设置:
   <select id="year" runat="server" onchange="YYYYDD(this.value)">
                                <option value="">请选择 年</option>
                            </select>
                            -<select id="month" runat="server" onchange="MMDD(this.value)">
                                <option value="">选择 月</option>
                            </select>-<select id="day" runat="server">
                                <option value="">选择 日</option>
                            </select>

解决方案 »

  1.   

     runat="server"  在后台获取应该是没有问题的,应该是你的值根本没有赋值给控件,你可以看看html代码,id根本不是“day”,你在js里面这样获取idgetElementById("<%=day.ClientID %>")你试试可以吗?
      

  2.   

    <body>
        <form id="form1" method="post" action="Default9.aspx" >
     <select id="year" name="year" onchange="YYYYDD(this.value)">
      <option value="">请选择 年</option>
      </select>
      -<select id="month" name="month" onchange="MMDD(this.value)">
      <option value="">选择 月</option>
      </select>-<select id="day" name="day">
      <option value="">选择 日</option>
      </select>
        <input id="Submit1" type="submit" value="submit" />
        </form>
    </body>    protected void Page_Load(object sender, EventArgs e)
        {
            string result = "";
            if (!IsPostBack)
            {
                if (Request.Form["year"] != null)
                    result += Request.Form["year"];
                if (Request.Form["month"] != null)
                    result += Request.Form["month"];
                if (Request.Form["day"] != null)
                    result += Request.Form["day"];
                Response.Write(result);
            }
        }
      

  3.   

    代码有点儿长
    既然你都加了runat="server",那就直接用ID.Value好了
    最后就是DateTime dt;
    string date = string.Format("{0}{1}{2}", year.Value,month.Value,day.Value);
    if(DateTime.TryParse(date, out dt))
       //日期有效,dt已经转换成选中的日期了
    else
       //日期转换失败
      

  4.   

    答案在2楼 我前天也是获取不到 没办法 post到后台获取的
      

  5.   

    .aspx和.cs文件有什么样内在关系? 我回答下这个~~代码后置  其实就是一个分布类  这两个其实是一个类  你用反编译工具 Reflector 来看写就明白了 前面的.aspx 控件什么的 都被翻译成了  输出html控件~