<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="selectBumf" TypeName="BumfDao">
            <SelectParameters>
            
                <asp:Parameter Name="bumf" Type="Object" />
                <asp:Parameter Name="tf" Type="Boolean" DefaultValue="true" />
            </SelectParameters>
        </asp:ObjectDataSource>
<asp:Parameter Name="bumf" Type="Object" />  这个地方的 DefaultValue我想要放进去一个对象我绑定的是对象 然后这个对象需要两个参数一个  true值     <asp:Parameter Name="tf" Type="Boolean" DefaultValue="true" /> 这个就已经没问题了
  一个 对象 怎么传进去 怎么做  查了半天 没查到结果!!知道的指导下 谢谢了!

解决方案 »

  1.   

    加上DataObjectTypeName="对象完整路径(命名空间)和对象名(如news.model.news1)"在<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="selectBumf" DataObjectTypeName="Sigo.Model.ModelMemOptometry"
      

  2.   

    请参考:
    http://www.51aspx.com/CV/AspNetDianZiShangWu/web/Control/ViewDefaultBook.ascx.html
      

  3.   

    楼主:据我这两年对ObjectDataSource的了解,谈谈供楼主参考;ObjectDataSource的确相当不错,和传统的比可以少写很多代码,但有些限制也很明显,它只能传字符串,
    虽然你的数据类型可能是整型,布尔型等等,但他都作为字符串传递;(接受时再自动转换)
    例如根据你的题目,想传的是布尔型数据,cs代码的写法是:
    ObjectDataSource1.SelectParameters["tf"].DefaultValue = "true";//这个双引号一定要的
    变量的话一定要ToString();例如:
    ObjectDataSource1.SelectParameters["tf"].DefaultValue = 变量.ToString();
    你不可能把一个对象转换成字符型,
    所以用ObjectDataSource想传一个对象是不行的!!
    vs2008不知道是否会有所改进!!!!
      

  4.   

    你提的问题很泛泛,我尽量捡感觉还是比较重要的几点说一下:一:你可以为你的ObjectDataSource设置注册它的Selecting事件,例如
    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Select" TypeName="ByBLLClass" onselecting="ObjectDataSource1_Selecting"
    ........
    protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
    {
        e.InputParameters.Add("myParam1", abc);
        e.InputParameters["myParam0",default);
        e.InputParameters.Remove("myParam1");
        e.InputParameters.Clear();
    }
    我这里,很“抽风”地,首先添加了一个myParam1参数及其值,然后修改了一个e.InputParameters中原本有的参数myParam0的值,然后又把myParam1给删除了,最后把所有参数值都给删除了。根据你在<SelectParameters>所声明的模式匹配规则,asp.net会到这个e.InputParameters所返回的集合中去找值。因此你也可以在此编程提交值、修改值。二:假设是一个GridView关联到ObjectDataSource1,这里只是用GridView举例,实际上别的任何控件的原理也是一样的,如果你要从GridView向ObjectDataSource1_Updateting或者ObjectDataSource1_Deleting的e.InputParameters集合里装入、修改甚至删除你自己定义的值,你也可以在GridView中自由地变成修改,例如:    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            e.NewValues["myParam0"] = abc;
            e.NewValues.Add("myParam1", def);
            e.OldValues["myParam0"] = ((Label)GridView1.Rows[e.RowIndex].FindControl("Label0")).Text;
        }
    等等。也就是说,在设计这些数据项目的关联关系时,不是后者受前者的牵制,你完全可以根据后者需要的参数情况去改造前一个环节。
      

  5.   

    e.InputParameters["myParam0",default);     -->    e.InputParameters["myParam0",def);这里abc和def是指你可以计算出任何对象结果然后传递给ObjectDataSource。
      

  6.   

    或者ObjectDataSource1_Deleting的e.InputParameters集合里    -->   或者ObjectDataSource1_Deleting 向  e.InputParameters集合里这里我写错一个字,意思就相反了,特此更正。
    如果你不编程控制,GridView会自动地把e.NewValues和e.OldValues集合里的值倾倒给e.InputParamters,你可以中间截获它们,随便改造。
      

  7.   

    sp1234
    请看看6楼提供的连接,代码中好象可以传Object类型!!
      

  8.   

    请教:
    e.InputParameters 在GridView哪个事件中可获得!!谢谢!!