0

this is my scenario

i have repeater with Id,Name and Price columns. I want to sort Price column by acceding and descending order from dropdownlist.My dropdownlist on outside the repeater.Please help me.im new to 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>

2 Answers2

0

I think your question is more sql related than ASP.NET. Sorting the output from a select-statement is done by adding a desc or asc at the end of it.

actopozipc
  • 93
  • 12
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

Add @orderBy as like @scat with value 0 or 1 0 for asc and 1 for desc