發表文章

Asp.net - Html - Js - 影片播放 - 影片播完/監聽影片播完/播放完影片/video播完

Asp.net - Html - Js - 影片播放/影片播完/監聽影片播完/播放完影片/video播完 最近接到一個需求需要監看每個帳號有沒有乖乖把影片看完XDDD 因為目前專案的寫法是打開影片就紀錄這個帳號看過 但並不是看完 所以希望我可以調整成,影片播放完畢才是看過 嗯...雖然我也表示過,人開影片開著沒有看但跑完了,也是沒看www...防君子不防小人阿 雖然大家都知道這件事情 但還是要寫 我拿到的就是Asp.net的專案 先來講純粹的Html如何達成 當然用Js囉 <video width="1024" height="576" id="shVideo" controls="controls"> <source src="影片路徑及檔名" type="video/mp4"> </video> <script>     var md=document.getElementsByTagName("video")[0];     md.addEventListener("ended",function(){          alert("播放结束");     }) </script> 這段Html執行後會跳出視窗顯示播放完成 所以有需要播放完後執行甚麼程式就塞在方法裡即可 基本上這段在Asp.net前端的結果應該是一樣的 但我剛好遇到的影片是在html 然後Asp前端用iframe導入該html 影片播完之後要調用的是Asp後端的程式... 所以有了這一篇 Asp 取得 iframe 中影片播完

ASP.NET - C# - (解決) Asp.net 中 Console.WriteLine() 不起作用 輸出無效 沒輸出資料 

Asp.net - C# - Console.WriteLine() 不起作用 輸出無效 沒輸出資料 身為一個平常只寫C# 根本沒寫過Asp.net 卻總是接到Asp.net修改或直接新的專案 不免還是會想要把想看的資料輸出在畫面上 有的時候靠Debug一個一個看太慢 無腦的就寫了 Console.WriteLine(變數) 然後就快樂的發現 即使 VS開啟「檢視」中 「輸出」的視窗 執行程式還是看不到輸出~ 上網爬了一遍才知道 在Asp.net中必須要寫 System.Diagnostics.Debug.WriteLine()  而不是 Console.WriteLine() 換成 System.Diagnostics.Debug.WriteLine(變數) 如此一來「輸出」的視窗就會顯示了~~~

C# - DataTable to Excel - DataTable轉Excel/DataTable輸出Excel DataSet

C# - DataTable to Excel - DataTable轉Excel/DataTable輸出Excel DataSet  DataTable/DataSet直接輸出成Excel 這邊有使用NPOI,記得要裝 如果用新版的VS2019開發會自動提示可以一鍵安裝 using NPOI; using NPOI.SS.UserModel; using NPOI.HSSF.UserModel; 方法給大家直接套  DataTable             public void DataTableToExcelFile(DataTable dt)         {                            IWorkbook wb = new HSSFWorkbook();             ISheet ws;             //IWorkbook wb = new XSSFWorkbook();             //ISheet ws;這邊自行選擇要新版或舊版的excel,記得改了的話下面輸出副檔名也要改                                          if (dt.TableName != string.Empty) { ws = wb.CreateSheet(dt.TableName); ...

C# - dict轉成DataTable / 字典轉DataTable /dict to DataTable

C# - dict轉成DataTable / 字典轉DataTable /dict to DataTable  dicSubData是一個自行設定的字典變數 先建立DataTable 這邊因為程式簡單,為了方便就直接使用static, 若程式架構需要考慮耦合請自行改寫 Static DataTable dtData = new DataTable(); 要轉成DataTable 首先需要填入DataTable 的Columns 這邊就用dicSubData的Key來填                  foreach (var colName in dicSubData.Keys)               {                                             dtData .Columns.Add(colName, typeof(string));                                     }                     DicToTable(dicSub Data ,  dtData  ); 填完Columns之後再來就是要把全部字典內容丟進去 寫了一個方法          public static void DicToTable(Dictionary<str...

C# - json轉字典 - 取得字典中的陣列再轉字典/解析字典內容 / json to dict

C# - json轉字典/取得字典中的陣列再轉字典/解析字典內容/ json to dict  由於C#不能像python一樣 即使json轉成dict之後內含list 也可以直接使用for迴圈遍歷一層一層 或是直接透過dict[key][index]這種語法取得list的內容 為了取得子資料轉成DataTable 想了解法 假設json取得資料如下 { "code":"0","message":"Success","ans": [ {"code":"1","Test": [           {"Num":"107","Age":"50","Fit":"C"},{"Num":"107","Age":"40","Fit":"C"}                             ]                     },{"code":"12","Test2": [ {"Num":"108","Age":"60","Fit":"CH"}                             ]                         }           ] } 就是dict->list->dict->list->dict 網路上找不到甚麼優良漂亮的解法 所以我就真的不管,照著這個邏輯寫下去了XD 根據上一篇透過webapi接收json的最後一行   Dictionary<string, object> dicJson = JsonTo...

C# - WebApi - 串接WebApi帶key帶header帶body - 傳值帶鍵值 / 回傳josn轉字典

C# - 串接WebApi帶key帶header帶body / 傳值帶鍵值 / 回傳josn轉字典  一直以來都沒用過C#做這一塊資料的接收 因為用python實在太方便 剛好最近在公司用到C#做串接 發現自己連怎麼帶key都不會哈哈哈... 整個研究完之後就記錄起來分享 假設對方要求的格式如下: 呼叫時請加入Header Content-Type: Application/Json api-key: 123 傳入值範例 { "Alable":"2020", "Blable":"test",     "Clable":"1", } 以下程式碼是 發出post請求 帶ContentType,Headers                using Newtonsoft.Json;                string url = "API連結";             string key = "要帶的key";             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);             request.Method = "POST";             request.ContentType = "Application/Json";             request.Headers.Add("api-key", key);             var postData =             ...

C# -ArrayList - Random-打亂陣列/亂數不重複/亂數陣列

C# -ArrayList - Random-打亂陣列/亂數不重複/亂數陣列 此篇不是撲克牌洗牌法,因為使用上覺得效能與結果都不是很好, 撲克牌洗牌一次換兩個,陣列大的時候換了感覺得沒有很乾淨。 所以自己找了另一個方式,打亂陣列的順序。 這個方式是透過 ArrayList 的特性與 Random 。 此範例會令產生一個新的陣列,若要變回原陣列名稱請自行加程式。 邏輯說明 ArrayList 是可動態增減陣列範圍 透過這樣的方式每次隨機Random 一個index 按照這個index在ArrayList取值另存給新的陣列後將該值從ArrayList中刪掉。 則得到的新陣列是原來陣列的打亂。 程式碼 static ArrayList list = new ArrayList(); static String[] Test = new String[10000]; static String[] NewTest = new String[10000]; for (int i = 1; i < 10001; i++) { Test[i]=i.ToString();//先創造原始字串陣列1~10000 } for (int i = 0; i < 10000; i++) { list.Add(i); }//這邊先創造一個ArrayList list 把原始陣列Test的內容都加進去 //即你原始陣列長度有多少,這個list就要有多少 for (int i = 0; i < 10000; i++) { Random Rnd = new Random(); //必須先new Random int r = Rnd.Next(0, list.Count); NewTest[i] = Test[(int)list[r]];//list 是一個物件型別需轉成int,並將list隨機index的值存給NewTest list.RemoveAt(r);//將list這個index的值刪除 } for (int i = 0; i < 10000; i++) { Console.Write(NewTest[i]); //Test是原...