webcontrol绑定数据源时可以通过数据绑定控件绑定和代码绑定,可是为什么第一种方法只能获取catid=0的数据,第二种就可以呢?
代码如下:
第一种:数据绑定控件界面:
webcontrol代码:
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
DataObjectTypeName="System.Guid" DeleteMethod="Delete" InsertMethod="Insert"
OldValuesParameterFormatString="original_{0}" SelectMethod="GetDataByCatId"
TypeName="企业网站2.DataSet.ProductTableDataSetTableAdapters.ProductTableTableAdapter"
UpdateMethod="Update">
<InsertParameters>
<asp:Parameter DbType="Guid" Name="id" />
<asp:Parameter Name="catid" Type="Int64" />
<asp:Parameter Name="name" Type="String" />
<asp:Parameter Name="image" Type="String" />
<asp:Parameter Name="description" Type="String" />
</InsertParameters>
<SelectParameters>
<asp:QueryStringParameter Name="catid" QueryStringField="catid" Type="Int64" DefaultValue="" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="catid" Type="Int64" />
<asp:Parameter Name="name" Type="String" />
<asp:Parameter Name="image" Type="String" />
<asp:Parameter Name="description" Type="String" />
<asp:Parameter DbType="Guid" Name="Original_id" />
</UpdateParameters>
</asp:ObjectDataSource>
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource1">
<HeaderTemplate><ul></HeaderTemplate>
<ItemTemplate><li><a href='ViewProduct.aspx?id=<%#Eval("id")%>'>产品名:<%#Eval("name") %></a></li></ItemTemplate>
<FooterTemplate></ul></FooterTemplate>
</asp:Repeater>
引用webcontrol的代码
<uc1:ProductShowWebUserControl ID="ProductShowWebUserControl1" runat="server" catid="1" /> 此处的catid好像不起作用,每次都只显示catid为0的数据,webcontrol中已添加了catid属性
第二种:代码绑定方法
page_load中添加
if (!IsPostBack)
{
var data = new ProductTableTableAdapter().GetDataByCatId(catid);
Repeater1.DataSource = data;
Repeater1.DataBind();
}
然后调用时跟上面一样设置actid就可以读到。
求赐教!!!
从以上代码可知:ProductShowWebUserControl1和ObjectDataSource1一点关系都没有,不知道你要问什么?还分了个第一种,第二种?
就是在webusercontrol中用Repeater显示ObjectDataSource1绑定的数据源啊,然后在其他界面直接使用此处的webusercontrol
@mingli: 那问题呢?
@沧海一杰: 问题就是绑定数据源的方式的区别,一个是数据绑定控件绑定,一个是代码绑定,重点是第一种方式为什么传递的参数无效啊??
@mingli: 就你贴的这点代码根本就不全,看不到你的问题。