วันเสาร์ที่ 23 กรกฎาคม พ.ศ. 2559

ASP.NET: ดึง RSS มาแสดงใน Repeater ด้วยคำสั่ง VB.NET

เนื่องจากการที่ผมไม่เคยเขียนคำสั่ง สำหรับดึง RSS มาแสดงบนเว็บไซต์ที่เขียนด้วย ASP.NET ต้องวิจัยอยู่นาน 3 ชั่วโมง ซึ่งก็คุ้มค่าพอสมควร เพราะทำให้ผมเข้าใจการเขียนคำสั่งติดต่อกับ RSS จริงๆคือ เป็นโครงสร้างไฟล์ XML ที่มีรูปแบบตามมาตรฐาน RSS ทำให้สามารถต่อยอดและแสดงผลโดยใช้เครืองมือ Repeater  จากที่ผมใช้เวลา 3 ชั่วโมง หวังว่าท่านที่สนใจสามารถนำโค้ดนี้ไปใช้งานจะประหยัดเวลามากขึ้นนะครับ ^^

***************** VB.NET ************************* 
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim strURL As String
        Dim ds As New DataSet()
        strURL = "http://rssfeeds.sanook.com/rss/feeds/sanook/hitech.computer.index.xml"


        Dim reader As XmlTextReader = New XmlTextReader(strURL)
        ds.ReadXml(reader)

        myRepeater_rss_News_it.DataSource = ds.Tables("item")
        myRepeater_rss_News_it.DataBind()


        ds = Nothing
End Sub
***************** ASP.NET *************************
<asp:Repeater id="myRepeater_rss_News_it" runat="server">
<ItemTemplate>
    <p><%# Eval("title")%></p>
    <p><%# Eval("description")%></p>
    <p><%# Eval("link")%></p>
       <hr />
</ItemTemplate>
</asp:Repeater>

ลิงค์ตัวอย่าง RSS อื่นๆ:
http://www.thaiware.com/rss/rss_latestPost_news.php
https://www.blognone.com/atom.xml

วันเสาร์ที่ 9 กรกฎาคม พ.ศ. 2559

การเรียกข้อมูลในฟังก์ชั่น จากไฟล์ ashx เพื่อนำค่าไปใช้ หรือ แสดงบน javascript


<script type="text/javascript">

    function getData_ashx() {
        var response = '';
        $.ajax({
            type: "GET",
            url: "/class/ashx/GraphHandler.ashx",
            async: false,
            success: function (text) {
                response = text;
            }
        });
        alert(response);
                     return response;
    }
</script>


*********  GraphHandler.ashx  **********************
Imports System.Web
Imports System.Web.Services

Public Class GraphHandler
    Implements System.Web.IHttpHandler

    Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest

        context.Response.ContentType = "text/plain"
        context.Response.Write(getdata_Chart())

    End Sub

    Public Shared Function getdata_Chart() As String
        Dim str As New StringBuilder

        str.Append("{ y: '2006', a: 50, b: 90, c: 112 },")
        str.Append("{ y: '2007', a: 75, b: 65, c: 95 },")
        str.Append("{ y: '2008', a: 50, b: 40, c: 80 },")
        str.Append("{ y: '2009', a: 75, b: 65, c: 96 },")
        str.Append("{ y: '2010', a: 50, b: 40, c: 75 },")
        str.Append("{ y: '2011', a: 75, b: 65, c: 110 },")
        str.Append("{ y: '2012', a: 100, b: 90, c: 132 },")
        str.Append("{ y: '2013', a: 125, b: 110, c: 152 },")
        str.Append("{ y: '2014', a: 145, b: 135, c: 165 }")

        Return str.ToString
    End Function


    ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
        Get
            Return False
        End Get
    End Property

End Class

วันอังคารที่ 31 พฤษภาคม พ.ศ. 2559

Redirect ไปยังหน้าเพจอื่นโดยใช้ TextBox Search โดยการ Enter

จากโค้ดเป็นการสั่งให้ Redirect ไปยังหน้าเพจค้นหา โดยรับค่าจาก TextBox Search เมื่อพิมพ์ข้อความแล้ว ต้องกด ปุ่ม Enter ที่แป้นคีย์บอร์ด จากนั้นคำค้นจะถูกส่งผ่าน URL เพื่อทำการค้นหาในหน้าเพจที่เราต้องการ


form onkeypress ="javascript:return  searchActive(event);" >
    <div class="form-group">
        <input type="text" id="top_search" name="top-search" runat ="server" >
    </div>
</form>

<script type="text/javascript">
    function searchActive(evt) {
        var charCode = (evt.which) ? evt.which : event.keyCode;
        if (charCode == 13) {
            window.location.replace("/?search=" + document.getElementById('<%=top_search.ClientID%>').value);
            return false;
        }
    }

</script>

วันเสาร์ที่ 21 พฤษภาคม พ.ศ. 2559

ฟังก์ชั่นในการปัดเศษ Math.Ceiling

หากต้องการปัดเศษ เพื่อการคำนวณหรือแสดงผล เช่นในตัวอย่างเป็น โปรเจค บทเรียนออนไลน์ที่ผู้สอนสามารถกำหนดร้อยละในการผ่านเกณฑ์ (ในภาพคือ 75%) ซึ่งผลเรียนจะต้องผ่าน 7.5 ข้อขึ้นไป แต่หากข้อสอบมีการนับเป็นจำนวนเต็ม ซึ่งต้องแสดงผล คือ 8 ข้อ เราสามารถเขียนชุดคำสั่ง ดังตัวอย่างนี้

----------------------- VB.NET SourceCode----------------------------

Dim num As Double = Math.Ceiling((10 * 75) / 100)

------------------------------------------------------------
Dim press As Integer = Math.Ceiling((Repeater1.Items.Count - 1) * Val(hdd_Present.Value) / 100)
------------------------------------------------------------


วันอังคารที่ 17 พฤษภาคม พ.ศ. 2559

ตารางซ้อนตาราง (Repeater in Repeater) ASP.NET & VB.NET

*********************  ASP.NET Code ***********************
<
asp:Repeater ID="ParentRepeater" runat="server">
    <ItemTemplate>
        <!-- Repeated data -->
        <asp:Repeater ID="ChildRepeater" runat="server">
            <ItemTemplate>
                <!-- Nested repeated data -->
            </ItemTemplate>
        </asp:Repeater>
    </ItemTemplate>
</asp:Repeater>
*********************  VB.NET Code ***********************
Private Sub ParentRepeater_ItemDataBound(sender As Object, e As RepeaterItemEventArgs) Handles ParentRepeater.ItemDataBound
Dim ChildRepeater As Repeater = e.Item.FindControl("ChildRepeater")

Dim SQL As String
       SQL = "SELECT………FROM ………"

       ChildRepeater.DataSource = objMyClassExecuteData.GetDataTable(SQL)
       ChildRepeater.DataBind()
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim SQL As String
    SQL = "SELECT………FROM ………"
    ParentRepeater.DataSource = objMyClassExecuteData.GetDataTable(SQL)
    ParentRepeater.DataBind()
End
Sub


อ้างอิง:http://stackoverflow.com/questions/2923137/repeater-in-repeater

การใช้ WebClient สำหรับเรียก URL

Dim _url As String = " https :// www . MyDomain . com /?q=ทดสอบ " Dim wc As New System . Net . WebClient () wc . Encodin...