To share to others engaging to this kind of problem. Here's the solution I found:
Need to create a class for your requirement
public class OrderFields
{
public int OrderNo { get; set; }
public string OrderField { get; set; }
public OrderFields(int num, string field)
{
OrderNo = num;
OrderField = field;
}
}
Then use this class as your List<>
public List<OrderFields> OrderBy()
{
List<OrderFields> listOrderBy = new List<OrderFields>();
for (int i = 0; i <= gvFilters.Rows.Count - 1; i++)
{
TextBox txtOrder = (TextBox)gvFilters.Rows[i].FindControl("txtOrder");
DropDownList drpTableName = (DropDownList)gvFilters.Rows[i].FindControl("drpTableName");
DropDownList drpFieldName = (DropDownList)gvFilters.Rows[i].FindControl("drpFieldName");
string ordervalue = drpTableName.SelectedValue.ToString() + "." + drpFieldName.SelectedValue.ToString();
listOrderBy.Add(new OrderFields(Convert.ToInt32(txtOrder.Text), ordervalue));
}
listOrderBy.Sort(delegate(OrderFields x, OrderFields y)
{
return x.OrderNo.CompareTo(y.OrderNo);
});
return listOrderBy;
}