解决方案 »
- 如果字数过长就显示 "...."
- 定时生成静态页面 求解决方案
- 为什么没有触发这个事件
- js 脚本问题,关于鼠标滑动时调用一个函数(能实现),鼠标滑动结束时调用另外一个函数(不能实现),在线等,有具体说明,
- 关于在服务器上赋予调用虚拟打印机的权限的问题,求解....跪求中啊....
- 我想了解一下在电信托管虚拟主机的一些信息,谢谢了。
- 类似winform里面的combox控件,哪位有比较好的!
- html控件的简单问题
- 一个困扰我很久的问题,期待各位高手伸出援手.(根据数据库读取生成树形目录的XML文档)
- 初学者今天第一问,关于名字空间。
- 有木有好用的asp.net FileUpload 第三方控件
- TreeView
public datatable dt
{
get
{
object o = ViewState["dt"];
return o == null ?null: o as datatable
}
set
{
ViewState["dt"] = value;
}
}
点导出后 获得input的值 导出excel.
dt=xxxxxxxxx.get........
xxoo.datascore=dt;
xxoo.databind();
导出的话也直接调用dt就行了
我存储的是报表大数据!用它的话,每次页面回发的话,都会在服务器和客户端之间来回传递(以hidden存储的方式),说实话,负担有点大,我就是想改改看看有没有其他的方法!
var cachedData=HttpContext.Cache["1"] as data;
如果是viewstate,那么数据过大了会占带宽,影像画面响应速度。
如果缓存,那么大数据会占用很大的服务器内存。优化方案是只缓存一个范围的数据,取数据再范围之外时,去掉之前的数据,缓存新数据
大神能不能给个例子,参考一下!之前在网上找到 例子,用缓存数据,缓存一下,可是,碰到了一个棘手的问题,就是,iis回收机制,自动把cache缓存的数据,给清理了,我设置了缓存的时间失效!
临时存储excel
大神能不能给个例子,参考一下!之前在网上找到 例子,用缓存数据,缓存一下,可是,碰到了一个棘手的问题,就是,iis回收机制,自动把cache缓存的数据,给清理了,我设置了缓存的时间失效!
在iis中查看回收的时间设置成了多少,延长回收的时间试试
或者在页面第一次加载的时候使用ajax方式加载数据,然后把查询出来的数据保存到一个隐藏域中,导出excel的按钮,不用服务器控件,用普通的html控件例如button,使用js在按钮被单击的时候,把隐藏域中存储的数据取出来
public void CopyFile(string FormerFile, string toFile, int SectSize)
{
FileStream fileToCreate = new FileStream(toFile, FileMode.Create); //创建目的文件,如果已存在将被覆盖
fileToCreate.Close(); //关闭所有资源
fileToCreate.Dispose(); //释放所有资源
FormerOpen = new FileStream(FormerFile, FileMode.Open, FileAccess.Read);//以只读方式打开源文件
ToFileOpen = new FileStream(toFile, FileMode.Append, FileAccess.Write); //以写方式打开目的文件
//根据一次传输的大小,计算传输的个数
int FileSize; //要拷贝的文件的大小
//如果分段拷贝,即每次拷贝内容小于文件总长度
if (SectSize < FormerOpen.Length)
{
byte[] buffer = new byte[SectSize]; //根据传输的大小,定义一个字节数组
int copied = 0; //记录传输的大小
while (copied <= ((int)FormerOpen.Length - SectSize)) //拷贝主体部分
{
FileSize = FormerOpen.Read(buffer, 0, SectSize); //从0开始读,每次最大读SectSize
FormerOpen.Flush(); //清空缓存
ToFileOpen.Write(buffer, 0, SectSize); //向目的文件写入字节
ToFileOpen.Flush(); //清空缓存
ToFileOpen.Position = FormerOpen.Position; //使源文件和目的文件流的位置相同
copied += FileSize; //记录已拷贝的大小
}
int left = (int)FormerOpen.Length - copied; //获取剩余大小
FileSize = FormerOpen.Read(buffer, 0, left); //读取剩余的字节
FormerOpen.Flush(); //清空缓存
ToFileOpen.Write(buffer, 0, left); //写入剩余的部分
ToFileOpen.Flush(); //清空缓存
}
//如果整体拷贝,即每次拷贝内容大于文件总长度
else
{
byte[] buffer = new byte[FormerOpen.Length]; //获取文件的大小
FormerOpen.Read(buffer, 0, (int)FormerOpen.Length); //读取源文件的字节
FormerOpen.Flush(); //清空缓存
ToFileOpen.Write(buffer, 0, (int)FormerOpen.Length); //写放字节
ToFileOpen.Flush(); //清空缓存
}
FormerOpen.Close(); //释放所有资源
ToFileOpen.Close(); //释放所有资源
MessageBox.Show("文件复制完成");
}