Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Data binding 如何在使用ObjectDataSource的代码中将datatable正确设置为gridview?_Data Binding_Datatable_Objectdatasource - Fatal编程技术网

Data binding 如何在使用ObjectDataSource的代码中将datatable正确设置为gridview?

Data binding 如何在使用ObjectDataSource的代码中将datatable正确设置为gridview?,data-binding,datatable,objectdatasource,Data Binding,Datatable,Objectdatasource,我在网页上有一个ID为ObjectDataSource1的ObjectDataSource。我还有一个gridview,在其中我将ObjectDataSource.ID绑定到gridview.DataSourceID。我遇到的问题是,当文本框中的文本发生更改时,代码调用BrokerageTransactions.GetAllWithDt,返回一个数据表。我想将此datatable设置为GridView的数据源,但它告诉我不能同时设置DataSource和DataSourceId。我怎样才能解决这

我在网页上有一个ID为ObjectDataSource1的ObjectDataSource。我还有一个gridview,在其中我将ObjectDataSource.ID绑定到gridview.DataSourceID。我遇到的问题是,当文本框中的文本发生更改时,代码调用BrokerageTransactions.GetAllWithDt,返回一个数据表。我想将此datatable设置为GridView的数据源,但它告诉我不能同时设置DataSource和DataSourceId。我怎样才能解决这个问题?代码如下。而且为什么在使用ObjectDataSource时不能设置DataSourceID和DataSource

谢谢, X

你有两个选择:

不要在上使用ObjectDataSource 全部的您只需使用数据源 属性并按语法进行设置 每一次。 您可以使用GridView的DataSourceID属性并添加两个设置了默认值的普通asp:参数。在ObjectDataSource_Selecting事件上,通过e.InputParameters[]设置这些参数
希望这有帮助。

您能更具体一点吗?这两个参数是什么?感谢这些参数将是示例代码中BrokerageTransactions的起始日期和截止日期,这将是dtTransFrom和dtTransTo。
protected void BrokerageChange(Object sender, EventArgs e)
{
    BrokerageTransactions brokerageaccountdetails = 
                          new BrokerageTransactions();

    DataSet ds = BrokerageAccount.GetBrkID2(new 
                 Guid(Membership.GetUser().ProviderUserKey.ToString()), 
                 ddlBrokerageDetails.SelectedItem.Text.ToString());

    foreach (DataRow dr in ds.Tables[0].Rows)
    {
        brokerageaccountdetails.BrokerageId = 
                                new Guid(dr["BrkrgId"].ToString());
    }

    ddlBrokerageDetails.SelectedItem.Value = 
                        brokerageaccountdetails.BrokerageId.ToString();

    if (txtTransactionsTo.Text != "" 
        && txtTransactionsFrom.Text != "")
        ObjectDataSource1.FilterExpression = 
        "convert(CreateDt,System.DateTime)>Convert('" + 
         Convert.ToDateTime(txtTransactionsFrom.Text) + "',System.DateTime) 
         and Convert(CreateDt,System.DateTime)<convert('"
         + Convert.ToDateTime(txtTransactionsTo.Text.ToString()) + 
         "',System.DateTime)";
    else if (txtTransactionsFrom.Text != "")
            ObjectDataSource1.FilterExpression =
            "convert(CreateDt,System.DateTime)>convert('" +
             Convert.ToDateTime(txtTransactionsFrom.Text) + 
            "',System.DateTime)";
    else if (txtTransactionsTo.Text != "")
            ObjectDataSource1.FilterExpression = 
            "convert(CreateDt,System.DateTime)
            <convert('" 
            + Convert.ToDateTime(txtTransactionsTo.Text.ToString()) +  
            "',System.DateTime)";
    else
        ObjectDataSource1.FilterExpression = " ";

    grvBrokerage.DataSourceID = ObjectDataSource1.ID;
    grvBrokerage.DataBind();

    DateTime dtTransFrom = Convert.ToDateTime("1/1/1900");
    DateTime dtTransTo = System.DateTime.Today;

    //TransactionsTo Box is Empty
    if ((txtTransactionsFrom.Text.Length > 2) 
    && (txtTransactionsTo.Text.Length < 2)) 
    {
        dtTransFrom = Convert.ToDateTime(txtTransactionsFrom.Text);
        dtTransTo = System.DateTime.Today;
    }

    //TransactionsFrom Box is Empty
    if ((txtTransactionsFrom.Text.Length < 2) 
    && (txtTransactionsTo.Text.Length > 2))
    {
       dtTransFrom = Convert.ToDateTime("1/1/1900");
       dtTransTo = Convert.ToDateTime(txtTransactionsTo.Text);
    }

    //TransactionsFrom Box and TransactionsTo Box is Not Empty
    if ((txtTransactionsFrom.Text.Length > 2) 
    && (txtTransactionsTo.Text.Length > 2))
    {
        dtTransFrom = Convert.ToDateTime(txtTransactionsFrom.Text);
        dtTransTo = Convert.ToDateTime(txtTransactionsTo.Text);
    }
    // Fails Here
    grvBrokerage.DataSource = 
    BrokerageTransactions.GetAllWithDt(brokerageaccountdetails.BrokerageId, 
                                       dtTransFrom, 
                                       dtTransTo);
    grvBrokerage.DataBind();  }