CSV出力ボタンラッパー(asp.net)[イベントの作り方に役立つ]

為什么80%的碼農都做不了架構師?>>> ??hot3.png

??? /// <summary>
??? /// CSV出力ボタンラッパー。
??? /// </summary>
??? public class CsvOutputButtonWrapper
??? {
??????? /// <summary>
??????? /// CSV出力ボタン
??????? /// </summary>
??????? private Button btnOutputCsv;

??????? /// <summary>
??????? /// CSVファイル名
??????? /// </summary>
??????? private string csvFileName;

??????? /// <summary>
??????? /// ヘッダー行
??????? /// </summary>
??????? private GridViewRow headerRow;

??????? /// <summary>
??????? /// HttpResponse
??????? /// </summary>
??????? HttpResponse response;

??????? /// <summary>
??????? /// 検索條件をCSV形式へ変換するイベントハンドル
??????? /// </summary>
??????? /// <returns></returns>
??????? public delegate string ConvertConditionEventHandler();

??????? /// <summary>
??????? /// 一覧データをCSV形式へ変換するイベントハンドル
??????? /// </summary>
??????? /// <returns></returns>
??????? public delegate string ConvertListEventHandler();

??????? /// <summary>
??????? /// 検索條件をCSV形式へ変換するイベント
??????? /// </summary>
??????? public event ConvertConditionEventHandler ConvertCondition;

??????? /// <summary>
??????? /// 一覧データをCSV形式へ変換するイベント
??????? /// </summary>
??????? public event ConvertListEventHandler ConvertList;

??????? /// <summary>
??????? /// CSVボタンのクリックイベント
??????? /// </summary>
??????? /// <param name="sender"></param>
??????? /// <param name="e"></param>
??????? private void btnOutputCsv_Click(object sender, EventArgs e)
??????? {
??????????? // CSVファイルを生成し、出力する
??????????? FileUtil.OutputCSV(response, this.csvFileName, CreateCSVFile());
??????? }

??????? /// <summary>
??????? /// CSV出力ファイルの內容を作る
??????? /// </summary>
??????? /// <returns></returns>
??????? private byte[] CreateCSVFile()
??????? {
??????????? StringBuilder sb = new StringBuilder();
??????????? Encoding encoding = Encoding.GetEncoding("Shift-JIS");

??????????? if (this.ConvertCondition != null)
??????????? {
??????????????? // 検索條件
??????????????? sb.Append(this.ConvertCondition());

??????????????? // 空行
??????????????? sb.AppendLine(string.Empty);
??????????? }

??????????? if (this.ConvertList != null)
??????????? {
??????????????? // グリッドのヘッダー行
??????????????? if (this.headerRow != null)
??????????????????? sb.AppendLine(PageUtil.ConvertGridViewHeaderToCSV(this.headerRow));

??????????????? // グリッドのデータ行
??????????????? sb.Append(this.ConvertList());
??????????? }
??????????? return encoding.GetBytes(sb.ToString());
??????? }

??????? /// <summary>
??????? /// コンストラクタ
??????? /// </summary>
??????? /// <param name="btnOutputCsv">CSV出力ボタン</param>
??????? /// <param name="csvFileName">CSVファイル名</param>
??????? /// <param name="headerRow">ヘッダー行</param>
??????? /// <param name="response">HttpResponse</param>
??????? public CsvOutputButtonWrapper(Button btnOutputCsv, string csvFileName, GridViewRow headerRow, HttpResponse response)
??????? {
??????????? this.btnOutputCsv = btnOutputCsv;
??????????? this.csvFileName = csvFileName;
??????????? this.headerRow = headerRow;
??????????? this.response = response;
??????????? this.btnOutputCsv.Click += new EventHandler(btnOutputCsv_Click);
??????? }
??? }

轉載于:https://my.oschina.net/cjkall/blog/195902

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/251671.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/251671.shtml
英文地址,請注明出處:http://en.pswp.cn/news/251671.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

結構體變量字節填充

二&#xff1a; &#xff08;1&#xff09;sizeof也可以對一個函數調用求值&#xff0c;其結果是函數返回類型的大小&#xff0c;函數并不會被調用。 &#xff08;2&#xff09;終于搞懂struct結構體內存分配問題了&#xff0c;結構體中各個成員字節對齊遵循以下幾個原則&#…

iOS GoldRaccoon第三方FTP文件夾下載失敗原因

一、問題描述&#xff1a;1.下載失敗報錯&#xff1a; 文件寫入失敗Error DomainNSCocoaErrorDomain Code512 "未能將文件“jquery_1_10_2_min.js”存儲到文件夾“Q20180104153006399”中。" 原因及解決方法&#xff1a;文件夾下均為文件&#xff0c;不包含子文件夾&…

項目UML設計(團隊)

團隊信息 隊名&#xff1a;massivehard 組長&#xff1a;曉輝 隊員&#xff1a;一飛&#xff0c;帥珍&#xff0c;斌豪&#xff0c;錦謀 團隊分工 模塊序號模塊名模塊具體內容1日記編輯添加隨筆2照片選擇選擇照片識別3消息模塊收發消息4個人信息賬號&#xff0c;密碼等負責人分…

安裝asp.net mvc4后mvc3項目編譯報錯

為什么80%的碼農都做不了架構師&#xff1f;>>> 安裝asp.net mvc4之后&#xff0c;之前的mvc3項目編譯時報這個錯“The type System.Web.Mvc.ModelClientValidationRule exists in both c:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.M…

SqlServer SqlBulkCopy批量插入 -- 多張表同時插入(事務)

這段時間在解決一個多個表需要同時插入大量數據的問題&#xff0c;于是在網上找了下&#xff0c;查到說用SqlBulkCopy效率很高&#xff0c;實驗后確實很快&#xff0c;10萬條數據只要4秒鐘&#xff0c;用ef要用40秒。但是我的還需兩張表同時插入&#xff0c;且需要用到事務&…

一介書生,僅此而已

喜歡寫文章&#xff0c;所以很少發隨筆。 嘛~其實是一開始就搞錯隨筆和文章的場景了&#xff0c;遷移太麻煩&#xff0c;有時間自己做個個人博客好了~~轉載于:https://www.cnblogs.com/restartyang/p/7710907.html

POJ 3608 Bridge Across Islands 《挑戰程序設計競賽》

為什么80%的碼農都做不了架構師&#xff1f;>>> POJ 3608 Bridge Across Islands跨島大橋&#xff1a;在兩個凸包小島之間造橋&#xff0c;求最小距離&#xff1f;3.6與平面和空間打交道的計算幾何 凸包 這題原始數據已經是凸包&#xff08;convex polygons&#x…

抓包(Charles工具入門)

一、charles工具簡單使用 1、錄制操作 錄制請求、清空錄制請求&#xff1a; 兩種展示請求的視圖方式&#xff1a; 2、錄制請求的簡單分析 &#xff08;1&#xff09;請求的總覽頁面Overview&#xff1a;可查看請求路徑、請求方式、請求時間等有關該請求的內容 &#xff08;2&am…

探秘創造力

為什么80%的碼農都做不了架構師&#xff1f;>>> 創造力&#xff0c;在很多行業和領域都被視為神奇的存在&#xff0c;大家都希望自己的創造力能夠無限&#xff0c;感覺創造力已經被神話了。其實&#xff0c;一個簡單問題可能很少人能夠明確&#xff1a;”創造力是天…

2017.10.23解題報告

預計分數&#xff1a;100600160 實際分數&#xff1a;100800180 T1 題目描述 現在有一個字符串&#xff0c;每個字母出現的次數均為偶數。接下來我們把第一次出現的字母a和第二次出現的a連一條線&#xff0c;第三次出現的和四次出現的字母a連一條線&#xff0c;第五次出現的和六…

Chrome Android 60.X+ 不能自動播放audio音頻的解決辦法

Chrome Android等一些瀏覽器默認限制了自動播放音頻視頻等&#xff0c;需要用戶有點擊的動作后才可以播放。這樣的原因在于很多用戶流量需要付費&#xff0c;而限制了自動播放可以避免用戶在不知情的情況下產生高額的流量費用。 在60.X版本之前&#xff0c;chrome://flags中有一…

(水一下)Linux啟動步驟(面試題)

1.加載并初始化Linux內核2.配置硬件設備3.內核創建自發進程4.由用戶決定是否進入手工引導模式5.init進程執行系統啟動腳本6.進入多用戶模式轉載于:https://blog.51cto.com/12942223/2408649

【WebGL】《WebGL編程指南》讀書筆記——第5章

一、前言 終于到了第五章了&#xff0c;貌似開始越來越復雜了。 二、正文 Example1&#xff1a;使用一個緩沖區去賦值多個頂點數據&#xff08;包含坐標及點大小&#xff09; function initVertexBuffers(gl) {var verticesSizes new Float32Array([0.0, 0.5, 10.0, -0.5, …

ngnix反向代理

https://blog.csdn.net/sherry_chan/article/details/79055211轉載于:https://www.cnblogs.com/lwj820876312/p/9115308.html

框架設計:實現數據的按需更新與插入的改進--用數據對比進一步說明

2019獨角獸企業重金招聘Python工程師標準>>> 在發布完&#xff1a;框架設計&#xff1a;實現數據的按需更新與插入的改進 之后&#xff1a; 有網友表示不理解&#xff0c;于是這里給出一篇簡單的說明對比&#xff0c;表示下改進后好處。 一&#xff1a;場景一&#…

Java異常詳解及如何處理

來源&#xff1a;Java異常詳解及如何處理 簡介 程序運行時&#xff0c;發生的不被期望的事件&#xff0c;它阻止了程序按照程序員的預期正常執行&#xff0c;這就是異常。異常發生時&#xff0c;是任程序自生自滅&#xff0c;立刻退出終止&#xff0c;還是輸出錯誤給用戶&…

端口以及服務常用cmd

netstat -ano 列出所有端口的情況 netstat -aon|findstr "49157" 查出特定端口的情況 tasklist|findstr "2720" 查看是哪個進程或者程序占用了PID端口的程序 打開任務管理器&#xff0c;切換到進程選項卡&#xff…

python學習筆記(二十八)日志模塊

我們在寫程序的時候經常會打一些日志來幫助我們查找問題&#xff0c;這次學習一下logging模塊&#xff0c;在python里面如何操作日志。介紹一下logging模塊&#xff0c;logging模塊就是python里面用來操作日志的模塊&#xff0c;logging模塊中主要有4個類&#xff0c;分別負責不…

TransactionScope 的基本原理簡介

C# 的事務編程 1 Db事務 DbConnection 中創建基于當前連接的 DbTransaction 2 使用TransactionScope ,創建環境事務 一旦創建&#xff0c;在這個環境包含的DbConnection 實例 都會根據連接字符串中的 Sqlserver 連接字符串支持&#xff0c;是否自動附加當前環境事務. 連接字符…

Canvas 生成交互動畫

2019獨角獸企業重金招聘Python工程師標準>>> 今天介紹的是一個HTML5交互動畫效果&#xff0c;難以置信。HTML5雖說還有很多東西在改進&#xff0c;但現在所能實現的 效果的程度我想是諸位很難想象得到的&#xff0c;實在是發展得太快了。 查看詳情 轉載于:https://m…