發表文章

目前顯示的是 5月, 2018的文章

ASP.NET-javascript點擊顯示收起內容(Show and hide details on click of a divison javascript)

圖片
介紹一個方法,可以利用javascript做到內容顯示與隱藏的功能,效果如下圖。 展開後 再點擊又收回 不囉嗦直接看程式碼 <span id="show" class="">     <a href="#" style="font-size: 30px; text-decoration: none">         <asp:Label ID="lbl_easy" runat="server" Text=""></asp:Label>     </a> </span> <div id="info" style="display: none; margin-left: 1em">     <asp:Literal ID="lbr_easy" runat="server" Text=""></asp:Literal> </div> 紅色的是標題一開始要顯示的字 橘色是內文中的字 要用啥元件可以看應用,這邊label與literal的值會去跟後端串接。 <script type="text/javascript">         $('#show').click(function () {             $('#info').toggle();             var visible = $('#info').is(":visible");             var value = document.getElementById("<%=lbl_easy.ClientID%>").value;             if (visible)        

ASP.NET-Web Service(API)接收參數並回傳json格式

圖片
這篇要介紹一個ASP.NET的專案,要如何建一個Web Service並可以接收別人給的參數,經過處理後回傳一json格式的Web API。 Step 1.新增asmx檔 Step 2.在App_Code資料夾找到取名一樣的.cs,因為要回傳json所以要定義一個類別,到時再用工具把這類別產生的物件轉成json,這次我想回傳的是一個json陣列。 宣告類別  public class Test {     public List<string> testList     {         get;         set;      }  } 再來你會在程式內看到[WebMethod]就是要你把處理的動作寫在這,如果有多個就自己新增[WebMethod]。 因此我就寫了一個method需要傳一個string參數,這個method與參數到時候會跟你打過去的API有關係。 在這邊我用的Json工具是Newtonsoft.Json所以別忘了在開頭using using Newtonsoft.Json; public void testMethod(string content) {      //宣告物件      Test test = new Test();      //宣告個list等等給物件的list接值      List<string> word = new List<string>();      word.Add(content);      test.testList = word;      Context.Response.Write(JsonConvert.SerializeObject(test)); } OK到這裡應該會有下圖的東西了。 Step 3:將Web Service發佈到Server上 專案 > add > Service Reference > Advanced > Add Web Reference > 輸入你server上的asmx路徑 之後它就會展生一包資料夾叫App_WebReferences然後把你的整包專案上到你的Server後API即可使用。 之

ASP.NET-後端將值傳給javascript

這邊介紹兩個基礎但很常會用到的技巧。 首先要如後將後端的值傳給前端的javascript。 首先在前端(aspx)設一個HiddenField物件 <asp:HiddenField ID="hf_time" runat="server" /> 後端(aspx.cs)給值 hf_time.Value = "TEST"; 前端(aspx)javascript取值         <script type="text/javascript">             function getValue {                 var value = document.getElementById("<%=hf_time.ClientID%>").value;             }         </script> 再來是進階應用,按鈕點擊呼叫jquery的blockUI並且顯示特定值。 上個階段有的東西這邊都要另外再拉一個button的物件。 <asp:Button ID="btn_test" class="genbtn" runat="server" Text="測試" OnClick="btn_test_Click" OnClientClick="markpage1();" /> 可以看到在按下按鈕時前端會去呼叫markpage1()這個function,接下來就是在javascript寫這個function。         <script type="text/javascript" src="../js/jquery.blockUI.js"></script>         <script type="text/javascript">             function markpage1() {        

字串、段落、文章相似度比對(Levenshtein distance)

之前介紹過文章相似度比對,今天要來介紹一個舉凡是兩個字串(string)都可以拿來算相似度的方法,且運算速度還比較快。 Levenshtein distance(萊文斯坦距離),其核心概念很簡單就是A字串要變的跟B字串一模一樣需要增加、刪除幾個字元,若增修的字元越少表示兩個字串越相似。 舉例:1234變成123編輯距離就是1。 相關的source code網路上資源有很多,隨意貼一個C#版本。 public static int LevenshteinDistance(string s, string t)     {         int n = s.Length;         int m = t.Length;         int[,] d = new int[n + 1, m + 1];         if (n == 0)         {             return m;         }         if (m == 0)         {             return n;         }         for (int i = 0; i <= n; d[i, 0] = i++)         {         }         for (int j = 0; j <= m; d[0, j] = j++)         {         }         for (int i = 1; i <= n; i++)         {             for (int j = 1; j <= m; j++)             {                 int cost = (t[j - 1] == s[i - 1]) ? 0 : 1;                 d[i, j] = Math.Min(                     Math.Min(d[i - 1, j] + 1, d[i, j - 1] + 1),                     d[i - 1, j - 1] + cost);             }         }