 |
|
ก่อนอื่นผมต้องบอกก่อนว่าผมไม่ค่อยเก่งเรื่อง javascript นะครับ ยังเป็นมือใหม่อยู่ครับ แต่พอดีลองเขียน asp.net แล้วมันไม่มี messagebox เลยลองหาข้อมูลจาก Google ดู ปรากฏว่าได้ code มาแบบนี้ครับ
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type = "text/javascript">
function Confirm() {
var confirm_value = document.createElement("INPUT");
confirm_value.type = "hidden";
confirm_value.name = "confirm_value";
if (confirm("Do you want to save data?")) {
confirm_value.value = "Yes";
} else {
confirm_value.value = "No";
}
document.forms[0].appendChild(confirm_value);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="btnConfirm" runat="server" OnClick = "OnConfirm" Text = "Raise Confirm" OnClientClick = "Confirm()"/>
</form>
</body>
</html>
ซึ่งมันดีกว่า Code confirm อื่นๆ ตรงที่สามารถไปควบคุมใน code behind ได้ครับ
Code behind จะเป็นแบบนี้
Code (VB.NET)
Protected Sub OnConfirm(sender As Object, e As EventArgs)
Dim confirmValue As String = Request.Form("confirm_value")
If confirmValue = "Yes" Then
ClientScript.RegisterStartupScript(Me.[GetType](), "alert", "alert('You clicked YES!')", True)
Else
ClientScript.RegisterStartupScript(Me.[GetType](), "alert", "alert('You clicked NO!')", True)
End If
End Sub
ข้อมูลนี้ได้มาจากเว็บนี้ครับ(ผมก๊อบเขามานะ อย่าว่าผมนะ ผมเด็กฝึกหัด-*-) http://aspsnippets.com/Articles/Server-Side-Code-Behind-Yes-No-Confirmation-Message-Box-in-ASPNet.aspx
แต่ข้อเสียของมันก็คือ มันใช้ตรง appendChild อ่ะครับ มันก็เลยเหมือนกับ + string เข้าไปเพิ่ม
จากการ Debug สังเกตว่าถ้าผมกดปุ่มไปมากกว่า 1 ครั้ง มันจะเป็นแบบนี้ครับ

สังเกตว่ามันจะไปเพิ่มครับ ไม่ได้เปลี่ยนแปลงค่า เพราะงั้นถ้าผมกด yes อีกที มันก็จะกลายเป็น No,No,Yes ซึ่งมันก็จะไม่เข้าเงื่อนไขอ่ะครับ
ผมขอบอกตรงๆ ซื่อๆเลยครับ .............ช่วยผมทีทีทีทีที
ปล.ก่อนผมจะตั้งกระทู้ ผมได้ลองพยายามหาวิธีแก้มาแล้วนะครับ แต่ก็ยังแก้ไม่ได้สักที ทั้งใช้ removechild หรืออื่นๆ มันก็ไม่ยอมลบค่าเดิมทิ้งก่อนใส่ค่าใหม่-*-
...อย่าลืม ผมไม่เป็น javascript นะครับ อย่าด่าผมนะ
ตอนนี้เบื้องต้นผมใช้วิธีแก้ไขแบบขอไปที คือ จัดการตัด string ซะดื้อๆ แบบนี้ครับ
confirmValue = Right(confirmValue, 3) ------- ตัด string จากตัวสุดท้ายมา 3 ตัว
confirmValue = confirmValue.Trim(CChar(",")) ---------- ถ้าเจอเครื่องหมาย "," ก็ ตัดทิ้ง
ผลลัพภ์ออกมาได้ผลครับ แต่ผมอยากได้แบบวิธีทำตั้งแต่ต้นทางอ่ะครับ
รู้ครับว่าปัญญาอ่อนที่ทำแบบนี้ รบกวนบอกวิธีที่ถูกต้องให้ผมได้บรรลุนิพพานด้วยนะครับ ขอบคุณทุกคนล่วงหน้าครับ
Tag : .NET, Ms Access, JavaScript, Web (ASP.NET), VB.NET
|
|
 |
 |
 |
 |
Date :
2014-09-09 11:34:43 |
By :
smartiden |
View :
3872 |
Reply :
3 |
|
 |
 |
 |
 |
|
|
|
 |