Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,036

HOME > .NET Framework > Forum > VB.Net ติดปัญหาเกี่ยวกับการสร้าง Dynamic Gridview ครับ



 

VB.Net ติดปัญหาเกี่ยวกับการสร้าง Dynamic Gridview ครับ

 



Topic : 102823



โพสกระทู้ ( 103 )
บทความ ( 0 )



สถานะออฟไลน์




Code (VB.NET)
Public Class WebForm10
    Inherits System.Web.UI.Page
    Dim dtHead As DataTable
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Protected Sub btn_search_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_search.Click
        If GridView1.Rows.Count > 0 Then
            GridView1.Columns.Clear()
        End If

        AddTemplate()

        addDatasource()
    End Sub

    Sub AddTemplate()
        Dim objTransaction As New transaction
        Dim resultDtHead As New DataTable

        resultDtHead = objTransaction.selectAllHeadGridview(dropCompany.SelectedValue, dropItem.SelectedValue)

        Session("bound_head") = resultDtHead

        Dim j As Integer


        For j = 0 To resultDtHead.Rows.Count - 1
            Dim dCol As New TemplateField()
            dCol.HeaderText = resultDtHead.Rows(j)("cost_name")
            dCol.ItemTemplate = New GridviewTemplate1(ListItemType.Item, resultDtHead.Rows(j)("cost_name"), j)
            GridView1.Columns.Add(dCol)
        Next
    End Sub
    Sub addDatasource()
        Dim objTransaction As New transaction
        Dim resultDtHead As New DataTable
        Dim resulthead As New DataTable
        Dim str_head_cost As String = ""


        resulthead = objTransaction.selectHeadGridview(dropCompany.SelectedValue, dropItem.SelectedValue)

        Dim k As Integer

        For k = 0 To resulthead.Rows.Count - 1
            If str_head_cost.Trim = "" Then
                str_head_cost = resulthead.Rows(0)("cost_name")
            Else
                str_head_cost = str_head_cost & "," & resulthead.Rows(k)("cost_name")
            End If
        Next

        Dim resultDt As New DataTable
        resultDt = objTransaction.selectDetailForWaitApp(dropCompany.SelectedValue, dropItem.SelectedValue, str_head_cost)
        Session("bound_data") = resultDtHead
        GridView1.DataSource = resultDt
        GridView1.DataBind()
    End Sub

    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound

        dtHead = Session("bound_head")


        Dim i As Integer

        For i = 0 To dtHead.Rows.Count - 1
            If i <> 0 Then


                Dim lblHead As Label = CType(e.Row.FindControl(dtHead.Rows(i)("cost_name")), Label)
                If Not IsNothing(lblHead) Then
                    If e.Row.DataItem(dtHead.Rows(i)("cost_name")).ToString.Trim.Length > 0 Then
                        lblHead.Text = e.Row.DataItem(dtHead.Rows(i)("cost_name"))
                    Else
                        lblHead.Text = "-"
                    End If

                End If
            End If
        Next


    End Sub



    Protected Sub Button2_Click1(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
     

    End Sub

 
End Class





Class สร้าง Template
Code (VB.NET)
Public Class GridviewTemplate1
    Implements ITemplate

    Dim templateType As ListItemType
    Dim str_id As String
    Dim str_no As Integer
    Sub New(ByVal type As ListItemType, ByVal str_cost As String, ByVal no As Integer)
        templateType = type
        str_id = str_cost
        str_no = no
    End Sub


    Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) _
        Implements System.Web.UI.ITemplate.InstantiateIn


        If str_no = 0 Then
            Dim cb As New CheckBox
            'cb.AutoPostBack = True
            cb.ID = "chkId"
            container.Controls.Add(cb)
        Else
            Select Case (templateType)
                Case ListItemType.Header
                    Dim txt As New TextBox
                    txt.Text = "Header"

                    container.Controls.Add(txt)
                Case ListItemType.Item
                    Dim lbl As New Label
                    lbl.ID = str_id

                    container.Controls.Add(lbl)

                Case ListItemType.Footer
                    Dim txt As New TextBox
                    container.Controls.Add(txt)
            End Select
        End If

       } 
    End Sub

End Class





พอกด ปุ่มค้นหา ก็จะไปคิวรี่ head มา เพื่อทำการส้ราง Head gridview และส่งค่า ชื่อ head gridview ไปสร้าง item template gridview และทำการ bound ข้อมูล แต่ปัญหาคือ เมื่อค้นข้อมูลเรียบร้อยแล้ว กดปุ่ม Button2_Click1 ข้อมูลที่ bound จะหายไปเลย แต่ item template gridview ยังอยู่ ไม่ทราบว่า ต้องแก้ไขอย่างไรครับ ติดมาเป็นอาทิตย์แล้วครับ ขอบคุณครับ



Tag : .NET, Ms SQL Server 2008







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-11-19 14:11:41 By : tavada_b View : 855 Reply : 2
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

จัดการที่พวก DataSource ให้เรียบร้อยครับ และทุก ๆ ครั้งก็ไป Bind ข้อมูลใหม่ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-20 08:57:39 By : mr.win
 


 

No. 2



โพสกระทู้ ( 103 )
บทความ ( 0 )



สถานะออฟไลน์


คือ ผมทำ checkbox ไว้ด้วยอะครับ เวลากดค้นหา จะทำการ checkbox ถ้า bind ตอน กด button2 checkbox ที่ผมติ้ก ไว้ก็จะหายอยู่ดีครับ ถึงแม้จะมีข้อมูลก็ตาามอะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-20 16:34:24 By : tavada_b
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : VB.Net ติดปัญหาเกี่ยวกับการสร้าง Dynamic Gridview ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่