| 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ปกติไม่หายนะ เพราะมันมี viewstate 
 ตกลง portback หรือ redirect
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-07-09 16:06:33 | By :
                            tungman |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | อืมๆ เข้าใจแระ 
 สงสัย table มันถูกสร้างตอน page load สงสัยมันจะหายแหละ
 
 เพราะได้มีการ new instance ใหม่
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-07-09 16:09:51 | By :
                            tungman |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ใช่อ่ะครับ มันต้องสร้าง ตารางใหม่ เมื่อเกิด postback ครับมีวิธีเก็บค่า textbox ในตารางไหมครับ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-07-09 16:18:20 | By :
                            zicxnals |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | หายครับ คงต้องให้ user กรอกข้อมูลทีหลังเลือก dropdownlist แล้วครับ 
 เพราะข้อมูลที่กรอกไปมันอยู่ใน memory ยังไม่ได้ถูกจัดเก็บไว้ที่ไหนเลย
 
 จะใช้ viewstate ก็ไม่ได้เพราะ control สร้างแบบ dynamic ไว้
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-07-09 16:23:02 | By :
                            tungman |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | Code (VB.NET) 
     Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load       
        If (Not Page.IsPostBack) Then
                ' เอา code การเชื่อมต่อกะ database ไว้ที่นี่ค่ะ 
                ' ทีนี้ PostBack จะไม่มีการ init อะไรใหม่ละ 
                
        End If
   End Sub
 อ้างอิงจาก ASP.NET PAGE LIFE CYCLE ค่ะ
 
 แบบ Advanceทำทีเดียวจบปัญหาก้อไป override Page มาเลยค่ะ
 
 อันนี้ที่ไปตอบที่ greatefriendz
 
 
 
 Code (VB.NET)
 
 Public Class myBasePage : Inherits System.Web.UI.Page
   Public Event OnPostBack (Byval Object Sender ,Byval e As System.EventArgs)
   Public Event OnPageLoadAtOnce (Byval Object Sender ,Byval e As System.EventArgs)
 
   'จะทำงานที่ event ไหนก็ Overide Event นั้นมาเลย สำคัญว่า อย่าลืมเอา Event chain >> MyBase.XXX เก็บเอาไว้ด้วยค่ะ
   'เพราะจะเป็นส่วน ส่งต่อการ  execute ไปยัง object ที่ inherit ต่อไปด้วยอะค่ะ
   Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
        RaiseEvent OnPostback (Me ,e)
        if (Not Page.IsPostBack) Then
               RaiseEvent OnPageLoadAtOnce (Me ,e)
        End
        MyBase.OnLoad(e) ' << Child Page and Parent class drived event here           
    End Sub
    Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
          if Not (Session("CURRENT_THEME") is Nothing) Then
                 Page.Theme = Session("CURRENT_THEME").ToString()
          End if
          MyBase.OnInit(e)
    Sub
End Class
 Code (VB.NET)
 
 'ทีนี้ ใน Page ของเราเช่น DEFAULT.ASPX นะคะ ส่วน Code behide จะเป็นยังงี้
Partial Class _Default : Inherits myBasePage
    Protected Sub Page_OnPostBack (ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.OnPostback
             '..... code
    End Sub
 
    Protected Sub Page_OnLoadAtOnce (Byval Object Sender ,Byval e As System.EventArgs) Handles Me.OnPageLoadAtOnce
              '..... code
    End Sub
 
End Class
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-07-09 16:33:18 | By :
                            blurEyes |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | Protected Sub Page_OnLoadAtOnce (Byval Object Sender ,Byval e As System.EventArgs) Handles Me.OnPageLoadAtOnce 
 เขียนคำสั่งสร้างตารางไว้ในนี้หรือครับ แล้ว dotnet จะเก็บ viewstate ให้ใช่ป่าวครับ
 
 ปล. ตอบกระทู้แบบนี้ท่าน tungman อายนาครับ อิๆ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-07-11 02:15:55 | By :
                            อิๆ |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ครัยอายคะ ทำไมต้องอาย 
 ปัญหามีทางแก้มากกว่าหนึ่งวิธีอยู่แล้วค่ะ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-07-11 03:24:41 | By :
                            blurEyes |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ไม่อายหรอก ผมหน้าด้าน 
 แต่ login มาเจอกันเลยดีกว่า ผมไม่ชอบอีแอบ อิๆ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-07-11 08:58:13 | By :
                            tung |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ใช่ครับ ผมเขียนโค๊ดให้สร้างตารางขึ้นมาเอง ตัวอย่างที่คุณ stupid gurl ให้มาผม งง ครับ เทพไปอ่ะ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-07-12 08:13:59 | By :
                            zicxnals |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ใช่ครับไม่ได้ bind มาจาก database อ่ะครับ ปัญหาที่หนึ่งคือ พอ autopostback แล้ว ตารางที่ gen มาตั้งแต่แรกหายไป ระบุ textbox ไม่ได้
 ปัญหาที่สองคือ จะเก็บค่าที่ข้อมูลที่พึ่งกรอกไปยังไง เมื่อ autopostback แล้วไม่รู้จะเอาค่าไหนมาเก็บเพราะตาราง
 หายไปกำหนดค่าที่ textbox ที่กรอกไปไม่ได้
 
 พอเข้าใจไหมครับ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-07-12 09:01:08 | By :
                            zicxnals |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | เข้าใจตั้งแต่แรกแล้ว 
 แต่คาดไม่ถึงว่าจะหนักกว่าที่คิด นี่ตารางหายไปด้วยเหรอ
 
 มันหายก็เพราะว่าคุณสร้าง ตารางใน event button click
 
 แต่พอคุณเลือก dropdownlist แล้ว postback มันก็ไม่ได้รัน event นั้น
 
 ฉะนั้นมันก็หาย
 
 ส่วนวิธีแก้ให้ศึกษาเรื่อง page life cycle ให้ดีๆ ตามด้านบนๆ นั่นแหละ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-07-12 09:22:48 | By :
                            tungman |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ใช้วิธีนี้ดีกว่า 
 เอา panel ครอบไว้แล้ว set visible เอา ไม่ต้องสร้างแบบ dynamic หรอก
 
 แบบนี้ใช้ viewstate ได้ด้วย เวลากรอกใส่ textbox แล้ว postback จะได้ไม่หาย
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-07-12 09:34:19 | By :
                            tungman |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | อ่ะครับ จะลองดูครับ น่าจะเป็นวิธีการที่ดีที่สุด 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-07-12 09:56:45 | By :
                            zicxnals |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 |