2016-09-08 3 views
1

とDatePickerのfromDateからtoDateまでとボタン ので、私は、この行にドロップダウンし、日付ピッカー、このショーのエラー無効な場合、私はドロップダウン持っているレポートページで例外

から値を選択すると

dt=report(Convert.ToDateTime(fromdate), Convert.ToDateTime(todate), Convert.ToString(DropDownList1.SelectedValue)); 

エラー

An exception of type 'System.InvalidCastException' occurred in mscorlib.dll but was not handled in user code 

Additional information: Unable to cast object of type 'System.Web.UI.HtmlControls.HtmlInputText' to type 'System.IConvertible' 

コード

protected void Button1_Click(object sender, EventArgs e) 
    { 

     dt=report(Convert.ToDateTime(fromdate), Convert.ToDateTime(todate), Convert.ToString(DropDownList1.SelectedValue)); 
     GridView1.DataSource = dt; 
     GridView1.DataBind(); 
    } 
    DataTable dt = new DataTable(); 
    public DataTable report(DateTime fromdate,DateTime todate,string IMEI) 
    { 

    DateTime fromdatee = Convert.ToDateTime(Request.Form["fromdate"]); 
     DateTime todatee = Convert.ToDateTime(Request.Form["todate"]); 

     Entities track = new Entities(); 

     DateTime fr_date = new DateTime(fromdatee.Year, fromdatee.Month, fromdatee.Day, 0, 0, 0); 
     DateTime t_date = new DateTime(todatee.Year, todatee.Month, todatee.Day, 23, 59, 59); 

     List<spGetReport_Result> report = track.spGetReport(IMEI,fr_date,t_date).ToList(); 
     dt.Columns.Add("Time",typeof(DateTime)); 
     dt.Columns.Add("X",typeof(float)); 
     dt.Columns.Add("valuenumber",typeof(int)); 

     foreach(var c in report) 
     { 
      dt.Rows.Add(c.Time, c.X, c.valuenumber); 
     } 
     return dt; 

    } 

HTML

 <form id="form1" runat="server"> 
    <div> 
     <span> 
      <asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList> 
     </span> 
     <span> 
     <input id="fromdate" runat="server" clientidmode="static" /> 
     </span> 
     <span> 
    <input id="todate" runat="server" clientidmode="static" /> 

     </span> 
     <span> 
      <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> 
     </span><br /> 


       <asp:Label ID="Label1" style="margin-left: 220px;" runat="server" Text="Export to"></asp:Label> 
        <asp:GridView ID="GridView1" runat="server" class="display nowrap" 
     Width="100%" CellPadding="0" 
     Font-Names="Verdana" BackColor ="White" BorderColor="#CCCCCC" BorderStyle="None" 
     BorderWidth="1px" Font-Size="9pt"> 
    <FooterStyle BackColor="White" ForeColor="#000066" /> 
    <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" /> 
    <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" /> 
    <RowStyle ForeColor="#000066" /> 
    <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" /> 
    <SortedAscendingCellStyle BackColor="#F1F1F1" /> 
    <SortedAscendingHeaderStyle BackColor="#007DBB" /> 
    <SortedDescendingCellStyle BackColor="#CAC9C9" /> 
    <SortedDescendingHeaderStyle BackColor="#00547E" /> 
</asp:GridView> 
    </div> 
    </form> 

答えて

0

あなたの代わりに変換される文字列のConvert.ToDateTimeHTMLコントロールを送信しているので。

あなたはこれを行うべきである:問題があった場所

dt = report(Convert.ToDateTime(fromdate.Value), Convert.ToDateTime(todate.Value), DropDownList1.SelectedValue); 

非常に簡単なデバッグプロセスはすぐにあなたを示しているだろう。

DropDownList1.SelectedValueは既に文字列、それを変換するにはポイントです。

とにかく、あなたはそれらの入力に何がバリデータを使用して、有効なDateTime表現が実際にあることを最初に確認する必要があります。

+0

ああ...今私はどのように愚かな過ち緊張コーダを実現:O:P – user6628729

関連する問題