Hi seryu,
Here i have created sample that full fill your requirement.
You can download the libraries using the following download locations.
For this demo I am making use of the Microsoft’s Northwind Database. Download and install instructions are provided in the link below.
HTML
<div>
<table>
<tr>
<td>
City
</td>
<td>
<asp:DropDownList runat="server" ID="ddlCity">
<asp:ListItem Text="Select" />
<asp:ListItem Text="Warszawa" />
<asp:ListItem Text="Buenos Aires" />
<asp:ListItem Text="London" />
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
Country
</td>
<td>
<asp:DropDownList ID="ddlCountry" runat="server">
<asp:ListItem Text="Select" />
<asp:ListItem Text="Poland" />
<asp:ListItem Text="Belgium" />
<asp:ListItem Text="Argentina" />
<asp:ListItem Text="UK" />
</asp:DropDownList>
</td>
</tr>
<tr>
<td colspan="2">
<asp:GridView runat="server" ID="gvCustomers" />
</td>
</tr>
<tr>
<td>
<asp:Button ID="btnSearch" runat="server" Text="Search" OnClick="Search" />
</td>
<td>
<asp:Button ID="btnExport" runat="server" Text="Export To Excel" OnClick="ExportExcel" />
</td>
</tr>
</table>
</div>
Code
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
string query = "SELECT TOP 10 ContactName,City,Country FROM Customers";
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(query))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
sda.Fill(dt);
ViewState["Data"] = dt;
gvCustomers.DataSource = dt;
gvCustomers.DataBind();
}
}
}
}
}
protected void Search(object sender, EventArgs e)
{
DataTable dt = new DataTable();
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
string query = "SELECT TOP 10 ContactName,City,Country FROM Customers WHERE City = @City AND Country = @Country";
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(query))
{
cmd.Parameters.AddWithValue("@City", ddlCity.SelectedItem.Text.Trim());
cmd.Parameters.AddWithValue("@Country", ddlCountry.SelectedItem.Text.Trim());
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
sda.Fill(dt);
ViewState["Data"] = dt;
gvCustomers.DataSource = dt;
gvCustomers.DataBind();
}
}
}
}
protected void ExportExcel(object sender, EventArgs e)
{
DataSet ds = new DataSet();
ds.Tables.Add(ViewState["Data"] as DataTable);
using (XLWorkbook wb = new XLWorkbook())
{
foreach (DataTable dt in ds.Tables)
{
//Add DataTable as Worksheet.
wb.Worksheets.Add(dt);
}
//Export the Excel file.
Response.Clear();
Response.Buffer = true;
Response.Charset = "";
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename=Test.xlsx");
using (MemoryStream MyMemoryStream = new MemoryStream())
{
wb.SaveAs(MyMemoryStream);
MyMemoryStream.WriteTo(Response.OutputStream);
Response.Flush();
Response.End();
}
}
}
Screenshot
