如何仅将OutputCache用于一个Gridview?

时间:2015-08-19 13:10:59

标签: c# asp.net gridview outputcache oledbconnection

我的网页上有很少的网格视图。必须在页面打开时运行数据源,因此我不能将OutputCache用于整个页面。

但是1 Gridview并不重要,查询也很慢。这就是为什么我需要缓存这个。 1小时/ 1查询对我没问题。

我的联系:

    try
    {
        OleDbConnection Connection1;
        using (Connection1 = new OleDbConnection("Provider=MSDAORA.1;Data Source=DATABASE:1521/orcl;Persist Security Info=True;Password=PASSWORD;User ID=USERNAME;"))
        {
            string sqlQuery = "select * from TABLE";

            using (OleDbDataAdapter cmd = new OleDbDataAdapter(sqlQuery, Connection1))
            {
                Connection1.Open();
                DataTable dt = new DataTable();
                cmd.Fill(dt);
                GridView1.DataSource = dt;
                GridView1.DataBind();
                Connection1.Close();
            }
        }
    }
    catch (Exception)
    {
    }

如何只缓存1个连接?

我可以将OutputCache仅用于1个Gridview吗?

我是否需要从Connection端缓存?

1 个答案:

答案 0 :(得分:1)

使用用户控件缓存部分页面

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyUserControl.ascx.cs" Inherits="StackOverflowQuestions.UserControl.MyUserControl" %>
<<%@ OutputCache Duration="3600" VaryByParam="none" %>
<asp:GridView ID="gvCache" runat="server"></asp:GridView>

将代码放入代码behinf .cs file page_load

protected void Page_Load(object sender, EventArgs e)
        {
           //your code here
        }

像这样使用页面中的用户控件 注册用户控件

<%@ Register TagName="UserControl" TagPrefix="uc" Src="~/UserControl/MyUserControl.ascx" %>

并像这样使用

<div>
     <uc:UserControl runat="server" />
</div>