สอบถามเรื่อง Disable Enable ของ Radio Button และคอนโทรลตัวอื่นที่ใช้ร่วมกัน VB.NET
ผมอธิบายไม่เก่ง ดูรูปกับโค้ดคงพอเข้าใจอยู่หรอกเน๊าะ เอาไปประยุกต์เอาเด้อ ใช่ (RadioButtonList)
Code (ASP)
<form id="form1" runat="server">
<div>
<table class="auto-style1">
<tr>
<td class="auto-style4" rowspan="3">
<asp:RadioButtonList ID="RadioButtonList1" runat="server" AutoPostBack="True" Width="61px">
<asp:ListItem>x</asp:ListItem>
<asp:ListItem>y</asp:ListItem>
<asp:ListItem>z</asp:ListItem>
</asp:RadioButtonList>
</td>
<td class="auto-style3">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" />
</td>
</tr>
<tr>
<td class="auto-style3">
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:Button ID="Button2" runat="server" Text="Button" />
</td>
</tr>
<tr>
<td class="auto-style3">
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:Button ID="Button3" runat="server" Text="Button" />
</td>
</tr>
<tr>
<td class="auto-style5"> </td>
<td class="auto-style2"> </td>
</tr>
</table>
</div>
</form>
Code (VB.NET)
Protected Sub RadioButtonList1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RadioButtonList1.SelectedIndexChanged
Select Case RadioButtonList1.Text
Case "x"
Call StatusTextBox(True, False, False)
Call StatusButton(True, False, False)
Case "y"
Call StatusTextBox(False, True, False)
Call StatusButton(False, True, False)
Case "z"
Call StatusTextBox(False, False, True)
Call StatusButton(False, False, True)
End Select
End Sub
Private Sub StatusTextBox(ByVal Bl1 As Boolean, ByVal Bl2 As Boolean, ByVal Bl3 As Boolean)
Me.TextBox1.Enabled = Bl1
Me.TextBox2.Enabled = Bl2
Me.TextBox3.Enabled = Bl3
End Sub
Private Sub StatusButton(ByVal Bl1 As Boolean, ByVal Bl2 As Boolean, ByVal Bl3 As Boolean)
Me.Button1.Enabled = Bl1
Me.Button2.Enabled = Bl2
Me.Button3.Enabled = Bl3
End Sub
ประวัติการแก้ไข 2015-04-16 21:46:10
Date :
2015-04-16 21:44:51
By :
ipstarone
ขอบคุณนะครับ แต่โค๊ดแบบนี้เหมือนจะเป็นของเฉพาะ RadioButtonList ผมไม่รู้จะเอามาปรับยังไง แห่ะๆ T^T ใครพอมีของ Radio Button
แบบธรรมดามั้ยครับ ช่วยแนะนำด้วยน้าาาา
Date :
2015-04-17 09:26:12
By :
bogey020
แบบนี้ป่าว ครับ
Code (C#)
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked == true)
{
textBox1.Enabled = true;
button1.Enabled = true;
}
else
{
textBox1.Enabled = false;
button1.Enabled = false;
}
}
Date :
2015-04-17 10:32:53
By :
as76157432
ครับ ผมว่าน่าจะประมานนี้ แต่ผมไม่เคยเขียน C# เลย ไม่รู้จะแปลงเป็น VB ได้ยังไง เดะลองทำดูก่อนก็ได้ครับ
หากใครมี Code VB มาแนะนำไว้จะขอบพระคุณมากเลยครับ
Date :
2015-04-17 11:54:40
By :
bogey020
อันนี้ javascript ถ้าไม่ถนัดก็เขียน jquery ก็ได้
Code (JavaScript)
<script>
function clickRadio() {
var radVal = document.mainForm.rads.value;
switch (radVal) {
case "C#":
myFunction(false, true, true, true)
break;
case "JAVA":
myFunction(true, false, true, true)
break;
case "C":
myFunction(true, true, false, true)
break;
default:
myFunction(true, true, true, false)
}
result.innerHTML = 'You selected: ' + radVal;
}
function myFunction(bl1, bl2, bl3, bl4) {
document.getElementById("txtName1").disabled = bl1;
document.getElementById("txtName2").disabled = bl2;
document.getElementById("txtName3").disabled = bl3;
document.getElementById("txtName4").disabled = bl4;
}
</script>
<fieldset><legend>Form</legend>
<form id="mainForm" name="mainForm">
<input type="radio" name="rads" value="C#" onClick="clickRadio()"/>C#
<input type="text" name="txtName1" id="txtName1"/><br/>
<input type="radio" name="rads" value="JAVA" onClick="clickRadio()"/>JAVA
<input type="text" name="txtName2" id="txtName2"/><br/>
<input type="radio" name="rads" value="C" onClick="clickRadio()"/>C
<input type="text" name="txtName3" id="txtName3"/><br/>
<input type="radio" name="rads" value="C++" onClick="clickRadio()"/>C++
<input type="text" name="txtName4" id="txtName4"/>
</form>
<span id="result"></span>
</fieldset>
Date :
2015-04-17 12:15:57
By :
ipstarone
ขอบคุณนะค้าบบบ ฟ้าสาง ผมว่าของคุณ Yoh น่าจะไกล้เคียงกับจุดประสงค์ของผม(หรือผมอาจใช้วิธีของคุณ ฟ้าสาง ไม่เป็น)
ผมจะลอง แปลง Code ของคุณ Yoh ให้เป็น VB ดูก่อนครับ ยังไงขอบคุณมากนะครับที่แนะนำ หากยังไม่ได้เดะผมลองดูครับ
Date :
2015-04-17 12:27:19
By :
bogey020
จากที่ผมลองทำแบบนี้ มันก็ไม่ปิดการใช้งานส่วนอื่นให้ผมอ่ะค้าบบบ
แก้ใขยังไงดีเอ่ยยยย ใครเข้ามาอ่านช่วยหน่อยน้าา
Code (VB.NET)
Protected Sub rdoByAll_CheckedChanged(sender As Object, e As EventArgs) Handles rdoByAll.CheckedChanged
If rdoByAll.Checked = True Then
txtDateFrom1.Enabled = True
txtDateTo1.Enabled = True
btnCallReport1.Enabled = True
txtDateFrom2.Enabled = False
txtDateTo2.Enabled = False
btnCallReport2.Enabled = False
txtDateFrom3.Enabled = False
txtDateTo3.Enabled = False
btnCallReport3.Enabled = False
ElseIf rdoByName.Checked = True Then
txtDateFrom1.Enabled = False
txtDateTo1.Enabled = False
btnCallReport1.Enabled = False
txtDateFrom2.Enabled = True
txtDateTo2.Enabled = True
btnCallReport2.Enabled = True
txtDateFrom3.Enabled = False
txtDateTo3.Enabled = False
btnCallReport3.Enabled = False
Else
txtDateFrom3.Enabled = True
txtDateTo3.Enabled = True
btnCallReport3.Enabled = True
End If
End Sub
Protected Sub rdoByName_CheckedChanged(sender As Object, e As EventArgs) Handles rdoByName.CheckedChanged
rdoByAll_CheckedChanged(sender, e)
End Sub
Protected Sub rdoByDep_CheckedChanged(sender As Object, e As EventArgs) Handles rdoByDep.CheckedChanged
rdoByAll_CheckedChanged(sender, e)
End Sub
Date :
2015-04-17 14:27:12
By :
bogey020
Load balance : Server 04