Export Gridview to Excel を使用しています。Gridview が表示される前に、ユーザーは何らかのフィルタリングを行います。ページの読み込み時に Gridview を配置しなかったため、[エクスポート] ボタンが機能していないようです....
ここに私のエクスポートコードがあります:
protected void Button2_Click(object sender, EventArgs e)
{
Response.ClearContent();
Response.AppendHeader("content-disposition", "attachment; filename=logbook.xls");
Response.ContentType = "application/excel";
StringWriter stringWriter = new StringWriter();
HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
GridView1.RenderControl(htmlTextWriter);
Response.Write(stringWriter.ToString());
Response.End();
}
私のGridviewコード:
protected void btnSearch_Click(object sender, EventArgs e)
{
BindGridviewData(ddlSystemList.SelectedValue);
}
private void BindGridviewData(string s)
{
string ConnectionStringB = ConfigurationManager.ConnectionStrings["connection"].ConnectionString;
using (SqlConnection connectionB = new SqlConnection(ConnectionStringB))
{
connectionB.Open();
SqlCommand cmd = new SqlCommand();
if (s == "Webloan")
{
cmd.Connection = connectionB;
cmd.CommandText = "Select a.ldatetime as DATE, a.username as USERNAME, a.fullname as FULLNAME, a.description as DESCRIPTION, b.action_name as ACTION from WEBLOAN_SERVER.webloan.dbo.logbook a join WEBLOAN_SERVER.webloan.dbo.action_def b on a.action_no = b.action_no where DATEDIFF(day,ldatetime,@date_exec1) <= 0 and DATEDIFF(day,ldatetime,@date_exec2) >= 0";
cmd.CommandType = CommandType.Text;
}
if (s == "Saveplus")
{
cmd.Connection = connectionB;
cmd.CommandText = "Select top 10 from WEBLOAN_SERVER.saveplus.dbo.logbook where DATEDIFF(day,ldatetime,@date_exec) = 0";
cmd.CommandType = CommandType.Text;
}
cmd.Parameters.AddWithValue("@date_exec1", txtDate.Text);
cmd.Parameters.AddWithValue("@date_exec2", txtDate2.Text);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
connectionB.Close();
}
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex; //assign new page number
BindGridviewData(ddlSystemList.SelectedValue);
//GridView1.DataBind(); // bind data to gridview
}
私のページの読み込みコード:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
txtDate.Text = DateTime.Now.ToString("MM/d/yyyy");
txtDate2.Text = DateTime.Now.ToString("MM/d/yyyy");
}
}
オーバーライドコードも追加しました:
public override void VerifyRenderingInServerForm(Control control)
{
}
私はASPの初心者です...私はこれについてひどく助けが必要です..ありがとう
PS: 私は更新パネルを使用しており、[Excel に生成] ボタンは更新パネル内にあります。