在 C#.net的Web页面中定义了一个datagrid,其中一列为模板列,我在该列的前台HTML代码中定义
<EditItemplate>
<Input id="endtime" onfocus="calender()" ruant="server">
</EditItemplate>
其中endtime为定义的控件名称,calender()为定义好的一个.js的日历文件。
在datagrid点击编辑按钮后,点击行处于可修改状态,点击该模板列即可弹出日历文件,然后选择日期。
但是我现在的问题是:
如何取到我点击后的那个日期值,因为我要向数据库中存储,我现在是取不到模板列选择后的值
我尝试了DateTime endtime=Convert.toDateTime(e.Items.cell[3].controls[1].tostring())
和DateTime endtime=DateTime.Parse(e.Items.cell[3].controls[1].tostring())
都有错误,提示为:该字符未被识别为有效的日期时间,有一个从索引0处开始的未知字!
现在是怎么才能取到我选择的日期值??
请教!!!
拜谢!!!

解决方案 »

  1.   

    调试一下看看你取的e.Items.cell[3].controls[1].tostring()是什么值
    我怎么记得是不是还得取value或text之类的呢
      

  2.   

    调试一下看看你取的e.Items.cell[3].controls[1].tostring()是什么值 
    我怎么记得是不是还得取value或text之类的呢
      

  3.   

    不知现在你能否从calender()中取到日期值?
      

  4.   

    e.Items.cell[3].controls[1].tostring()的结果是这个控件的类型名称这样写DateTime dt;
    if(DateTime.TryParse((e.Items.cell[3].FindControl("endtime") as HtmlInput).value, out dt))
    {
    //成功解析了
    }
    else
    {
    格式有问题,或是空串
    }
      

  5.   

    把你后台绑定的代码帖出来,
    估计你得用FindbyControl
    private void mygrid_ItemDataBound(object sender, DataGridItemEventArgs e)
      {
       if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
       {
         System.Web.UI.HtmlControls.HtmlInputText endtime = e.Item.FindControl("endtime");
                if (null != endtime)
                {  Response.write("endTime Exists!");        }
              else 
                  {  Response.write("endTime  No Exists!");}
       ////……………
       }
      }
      

  6.   

    谢谢大家!
    我试了试6楼的方法,还是不行!
    下面的是我的后台代码:
    private void DataGrid_UpdateCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    string pid=e.Item.Cells[0].Text.ToString().Trim();
    string gid=e.Item.Cells[1].Text.ToString().Trim();
    DateTime starttime=Convert.ToDateTime(e.Item.Cells[2].Text);//出差时间
    DateTime endtime=(DateTime)e.Item.Cells[3].Controls[1].ToString();//到期时间,注:此行存在错误!我即想取该行的值!!!
    string ddays=((TextBox)e.Item.Cells[4].Controls[0]).Text.Tostring().Trim();//延期天数
    }
    错误在什么地方?????
      

  7.   

    谢谢大家!
    我试了试6楼的方法,还是不行!
    下面的是我的后台代码:
    private void DataGrid_UpdateCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    string pid=e.Item.Cells[0].Text.ToString().Trim();
    string gid=e.Item.Cells[1].Text.ToString().Trim();
    DateTime starttime=Convert.ToDateTime(e.Item.Cells[2].Text);//出差时间
    DateTime endtime=(DateTime)e.Item.Cells[3].Controls[1].ToString();//到期时间,注:此行存在错误!我即想取该行的值!!!
    string ddays=((TextBox)e.Item.Cells[4].Controls[0]).Text.Tostring().Trim();//延期天数
    }
    错误在什么地方?????