首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

Repeater+SqlDataSource.Selecting怪有关问题。立即结贴

2012-03-07 
Repeater+SqlDataSource.Selecting怪问题。立即结贴。asp:Repeater IDRepeater1 DataSourceIDSqlDataS

Repeater+SqlDataSource.Selecting怪问题。立即结贴。
<asp:Repeater ID="Repeater1" DataSourceID="SqlDataSource1" runat="server">
  <HeaderTemplate>
  <table border="1">
  </HeaderTemplate>
  <ItemTemplate>
  <tr>
  <td><asp:HyperLink ID="HyperlinkA" runat="server" NavigateUrl="~/default.aspx" Text='<%# Eval("A") %>' /></td>
  <td><asp:HyperLink ID="HyperLinkB" runat="server" NavigateUrl="~/default.aspx" Text='<%# Eval("B") %>' /></td>
  <td><asp:HyperLink ID="HyperLinkRQ" runat="server" NavigateUrl="~/default.aspx" Text='<%# Eval("RQ", "{0:m}") %>' /></td>
  </tr>
  </ItemTemplate>
  <FooterTemplate>
  </table>
  </FooterTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
  OnSelecting="SqlDataSource1_Selecting" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
  SelectCommand="select A, B from TABLE where RQ>=@RQ order by CLRQ desc" DataSourceMode="DataReader">
  <SelectParameters>
  <asp:Parameter Name="RQ" />
  </SelectParameters>
</asp:SqlDataSource>

C# code
protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e){            SqlDataSource1.SelectParameters["RQ"].DefaultValue = DateTime.Now.AddDays(-3).ToShortDateString();}

时,Repeater里什么都不显示。
而把SqlDataSource绑定到GridView时就能正确显示数据。
如:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" DataSourceID="SqlDataSource1">
</asp:GridView>

搞不清为什么。

<SelectParameters>
  <asp:Parameter Name="CLRQ" DefaultValue="2008-5-19" />
</SelectParameters>
时,Repeater只显示5-19日的数据,而GridView显示3天前到当天的数据(即RQ>=DateTime.Now.AddDays(-3))。





[解决办法]
不用 Selecting事件,这样就行
HTML code
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString=" <%$ ConnectionStrings:ConnectionString %>"  ProviderName=" <%$ ConnectionStrings:ConnectionString.ProviderName %>"             SelectCommand="select A, B from TABLE where RQ>=@RQ order by CLRQ desc" DataSourceMode="DataReader">              <SelectParameters>                  <asp:Parameter Name="RQ" DefaultValue="2008-5-19" />              </SelectParameters> </asp:SqlDataSource>
[解决办法]
同意LS,这里可以不用参数
SelectCommand="select A, B from TABLE where RQ>="2008-5-19"
[解决办法]
sqlDataSource不熟 看看学习学习
[解决办法]
楼下几个回答的人显然不明白楼主的用意,虽然我也不知道怎么解决。但是可以提高另一条路的建议:


楼主用存储过程吧,SQL里面自带函数

热点排行