ความผิดพลาดคืออาจารย์ 2

บันทึก ASP.NET :: อยากให้ Control บางตัวใช้งานไม่ได้ (enable false)

Posted by: -xox- on: พฤศจิกายน 21, 2008

กำหนดเมื่อ page load ให้ dropdownlist เป็น “โสด” แล้วกำหนด คอนโทรลตัวอื่นที่ไม่เกี่ยวข้องให้ใช้งานไม่ได้

enable control

enable control

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
MarryNotShow()

‘control วันที่
If Page.IsPostBack Then
Response.Write(“เกิดวันที่ ” & dateUC1.DVal & “/” & dateUC1.MVal & “/” & dateUC1.YVal)

‘ control radio button เพศ
If radiMale.Checked = True Then
Response.Write(radiMale.Text)
Else
Response.Write(radiFemale.Text)
End If

End If
End Sub


และเมื่อมีเปลี่ยนค่า ใน dropdownlist จาก “โสด” เป็น “สมรส” control ถึงจะสามารถใช้งานได้

enable control

ให้แสดง control เพื่อรับข้อมูลเกี่ยวกับคู่สมรส

Protected Sub ddlMarry_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlMarry.SelectedIndexChanged
‘check marry
If ddlMarry.SelectedValue = “สมรส” Then
MarryShow()
ElseIf ddlMarry.SelectedValue = “โสด” Then
MarryNotShow()
End If
End Sub

โดยเขียน private sub สองตัว

Private Sub MarryNotShow()
radiYes.Checked = False
radiNo.Checked = False
txtNameMate.Text = “”
txtJobMade.Text = “”
txtJobOfficeMade.Text = “”
txtNameMate.CssClass = “textboxEnable”
txtJobMade.CssClass = “textboxEnable”
txtJobOfficeMade.CssClass = “textboxEnable”

ddlMarryRegis.Enabled = False
radiYes.Enabled = False
radiNo.Enabled = False
txtNameMate.Enabled = False
txtJobMade.Enabled = False
txtJobOfficeMade.Enabled = False
End Sub

 


Private Sub MarryShow()
txtNameMate.CssClass = “”
txtJobMade.CssClass = “”
txtJobOfficeMade.CssClass = “”
ddlMarryRegis.Enabled = True
radiYes.Enabled = True
radiNo.Enabled = True
txtNameMate.Enabled = True
txtJobMade.Enabled = True
txtJobOfficeMade.Enabled = True

End Sub

 

เพิ่งนึกได้ ว่าตอนทำ vb6 สมัยเมินนานมาแล้ว ก็ทำแบบนี้นี่นา

ข้อเสียก็คือ ตอนเลือก สถานภาพสมรส มันจะส่งค่า ispostback ซึ่งจะทำให้หน้าเพจ refresh

(อาจจะทำให้ผู้ใช้รำคาญได้)

ไม่รู้ว่ามีวิธีอื่นที่ดีกว่านี้รึเปล่า..

ป้ายกำกับ: , ,

3 Responses to "บันทึก ASP.NET :: อยากให้ Control บางตัวใช้งานไม่ได้ (enable false)"

รู้สึกว่ามีปัญหาตรง css เพราะหลังจากกำหนดให้ CssClass = “” แล้ว css ที่ใช้กับ page หน้านี้เจ๊งไปเลย

ควรใส่

MaintainScrollPositionOnPostback=”true”

ตรงหัว page ด้วยเพื่อเวลา postback แล้วจะได้ไม่ขึ้นไปอยู่ส่วน top

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Connecting to %s