这是我的情况
我有带有Id,Name和Price列的中继器。 我想按价格从下拉列表中的升序或降序对价格列进行排序。我的下拉列表位于转发器之外。请帮助me.im对asp.net来说是新的
c#
SqlConnection myconn;
SqlCommand mycomm;
myconn = new
SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
string q = ("SELECT postad.adid, postad.adtitle, postad.rate, postad.date, postad.pic1, addstate.statename, addcity.cityname, addsubcat.scatname, addcat.catname FROM addcity INNER JOIN addstate INNER JOIN addsubcat INNER JOIN postad INNER JOIN addcat ON postad.cat = addcat.catid ON addsubcat.subcatid = postad.scat ON addstate.stateid = postad.state ON addcity.cityid = postad.city WHERE (postad.scat = @scat) and (postad.expiry >= Getdate()) and postad.status='Approved'");
mycomm = new SqlCommand(q, myconn);
mycomm.Parameters.AddWithValue("@scat", Request.QueryString["scid"]);
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(mycomm);
myconn.Open();
da.Fill(dt);
if (dt.Rows.Count > 0 && dt.Rows[0][0] != string.Empty)
{
rpt3.DataSource = dt;
rpt3.DataBind();
}
else
{
rpt3.DataSource = null;
rpt3.DataBind();
}
myconn.Close();
<asp:Repeater ID="Repeater2" DataSourceID="SqlDataSource1" runat="server">
<ItemTemplate >
<td class="itemWidth" style="margin-top:2%">
<asp:LinkButton ID="LinkButton6" CssClass="cat" runat="server"
PostBackUrl='<%# Eval("subcatid", "viewads.aspx?scid={0}") %>'
Text='<%# Eval("scatname") %>' ForeColor="#666666"></asp:LinkButton><br />
</td>
</ItemTemplate>
</asp:Repeater>
<h5>Price</h5>
<asp:DropDownList ID="DropDownList1" CssClass="form-control" runat="server"></asp:DropDownList>
</div>
答案 0 :(得分:0)
我认为您的问题比ASP.NET与SQL有关。通过在选择语句的末尾添加desc或asc来对选择语句的输出进行排序。
答案 1 :(得分:0)
SELECT
postad.adid,
postad.adtitle,
postad.rate,
postad.date,
postad.pic1,
addstate.statename,
addcity.cityname,
addsubcat.scatname,
addcat.catname
FROM addcity
INNER JOIN addstate
INNER JOIN addsubcat
INNER JOIN postad
INNER JOIN addcat
ON postad.cat = addcat.catid
ON addsubcat.subcatid = postad.scat
ON addstate.stateid = postad.state
ON addcity.cityid = postad.city
WHERE (postad.scat = @scat)
AND (postad.expiry >= GETDATE())
AND postad.status = 'Approved'
ORDER BY CASE
WHEN @orderBy = 0 THEN postad.rate
END ASC,
CASE
WHEN @orderBy = 1 THEN postad.rate
END DESC
将@orderBy像@scat一样添加为0或1 ASCII表示0,而Desc表示1