|
|
|
สอบถามเรื่อง CheckBox คะ อยากทราบว่า มี textbox1.Text เมื่อกรอกข้อมูล แล้วมี checkBox ให้กด เมื่อกดติ๊กที่เช็กบ๊อก ข้อมูลใน TextBox2.Text |
|
|
|
|
|
|
|
จะใช้ ASP.NET AJAX นะคะ
นี่แหละค่ะ MS ASP.NET AJAX ค่ะ
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
ปกติจะ build-in ใน VSS 2008 อยู่แล้วค่ะ
Default.aspx
Code (ASP)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:TextBox ID="TextBox1" Text="sample" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:CheckBox ID="CheckBox1" runat="server" />
</div>
</form>
</body>
</html>
Default.aspx.cs
Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Xml;
using System.Data;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// Add this method here for actived when page load
DuplicateValueWithJavaScriptFromServerSide(TextBox1, TextBox2, CheckBox1);
if (!IsPostBack)
{
}
}
private void DuplicateValueWithJavaScriptFromServerSide(TextBox varTextBoxSource
, TextBox varTextBoxDestination, CheckBox varCheckedBoxTriggerControl)
{
System.Text.StringBuilder ScriptSB = new System.Text.StringBuilder();
ScriptSB.AppendLine("<script language = \"javascript\" type = \"text/javascript\" >");
ScriptSB.AppendLine("\t function AJAXDuplicateValue() {");
//ScriptSB.AppendLine("\t\t alert('on work'); ");
ScriptSB.AppendLine("\t\t var triggerCheckedBox = $get('"
+ varCheckedBoxTriggerControl.ClientID + "');");
ScriptSB.AppendLine("\t\t if (triggerCheckedBox.checked == true ) ");
ScriptSB.AppendLine("\t\t { ");
ScriptSB.AppendLine("\t\t\t var sourceTextBox = $get('"
+ varTextBoxSource.ClientID + "');");
ScriptSB.AppendLine("\t\t\t var targetTextBox = $get('"
+ varTextBoxDestination.ClientID + "');");
ScriptSB.AppendLine("\t\t\t targetTextBox.value = sourceTextBox.value; ");
ScriptSB.AppendLine("\t\t } ");
ScriptSB.AppendLine("\t\t return false; ");
ScriptSB.AppendLine("\t }");
ScriptSB.AppendLine("</script>");
LiteralControl scriptInjector = new LiteralControl();
scriptInjector.Text = ScriptSB.ToString();
this.Controls.Add(scriptInjector);
varCheckedBoxTriggerControl.Attributes.Add("onclick", "AJAXDuplicateValue()");
}
}
ไม่ได้ใช้ Session นะคะเพราะเป็น AJAX รับส่งค่ากันตรงๆอยู่แล้ว โดยจะทำงานเมื่อ click ที่ checkbox
ถ้า checkbox มีค่าเป็น true จะ copy ค่าจาก textbox1 ไปยัง textbox2 ค่ะ
ถ้า checkbox มีค่าเป็น false จะไม่มีอะไรเกิดขึ้น
ปล. ทั้งหมด CASE SENSITIVE นะคะ
ส่วน code ของคุณ BOW แก้ได้ด้วยกำหนด property : autopostback = true ก็ทำงานค่ะ
เพียงแต่จะเกิดการ refresh page คือหน้าจอจะกะพริบแล้วทำการดึงข้อมูลมาใหม่ทั้ง page ค่ะ
ส่วน code ที่ให้เป็น ajax ที่เขียนทางฝั่ง server แต่ทำงาานที่ client ค่ะ
|
|
|
|
|
Date :
2010-05-20 15:03:54 |
By :
blurEyes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณคะ คุณ Stupid gal ลองทำ : autopostback = true ได้แล้วละ คะ ส่วนวิธีของ Ajax ไม่เคยทำคะ
แต่อยากลองใช้ งั้นถามเลย ละกัน คิคิ
DuplicateValueWithJavaScriptFromServerSide(TextBox1, TextBox2, CheckBox1);
สงสัยว่า DuplicateValueWithJavaScriptFromServerSide มาจากไหนคะ รบกวนหน่อยนะคะ
|
|
|
|
|
Date :
2010-05-20 17:21:18 |
By :
Bow |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บรรทัดที่ 23 ค่ะ
ของ default.aspx.cs
เป็นชื่อ method ที่เขียนเพื่อการนี้ค่ะ
|
|
|
|
|
Date :
2010-05-20 17:24:06 |
By :
blurEyes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้กะลังลองทำตามที่บอกนะคะ แต่ หา DuplicateValueWithJavaScriptFromServerSide มะเจอคะ กดจากตรงไหนอ่า ตรง Event ก็มะมี คิคิ
|
|
|
|
|
Date :
2010-05-20 18:59:17 |
By :
Bow |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถามอีกนิดคะ ที่พี่บอกว่าไม่ได้ใช้ Session
เพราะเป็น AJAX รับส่งค่ากันตรงๆอยู่แล้ว โดยจะทำงานเมื่อ click ที่ checkbox
ถ้า checkbox มีค่าเป็น true จะ copy ค่าจาก textbox1 ไปยัง textbox2 ค่ะ
ถ้า checkbox มีค่าเป็น false จะไม่มีอะไรเกิดขึ้น
อยากรู้ว่า ถ้าแบบว่า textbox ที่ต้องการให้ก๊อบปี้ข้อมูลมันมีหลายอันเช่น
ให้กรอกข้อมูลที่อยู่ตามบัตรปชช และจะมีให้กรอกที่อยู่ปัจจุบัน อีกอัน ถ้าเกิดเป็นที่อยู่เดียวกันก็ติ๊กที่เช็กบ๊อกเลยคะ มันก็จะขึ้นข้อมูลที่พิมตรงที่อยู่บัตรปชช ให้เหมือนกับที่อยุ่ปัจจุบันด้วยอ่าคะ แล้วกรณีนี้เท็กบ๊อกมันมีหลายอันใช้ AJAX มันจะใช้ได้เหมือนกานไหมคะ
|
|
|
|
|
Date :
2010-05-20 19:09:32 |
By :
Bow |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอตอบแทนแล้วกันครับ ว่าถึงมี textbox หลายๆ อันก็ใช้หลักการเดียวกันคือ javascript แล้วมันเกี่ยวอะไรกับ xml ล่ะเนี่ย
ย้ำ หลักการนะไม่ใช่โค้ด
|
|
|
|
|
Date :
2010-05-20 19:16:58 |
By :
tungman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พอเข้าใจค่ะ ในข้อมูลที่รับเข้าจากผู้ใช้ มีชุดข้อมูลย่อย
คือที่อยู่ ที่มีโครงสร้างเหมือนกันจำนวนสองชุด ( หรือมากกว่า )
คุณ Bow อยากจะ copy ข้อมูลที่อยู่ระหว่างชุดข้อมูลย่อยนี้ใช่ปะคะ
จากตัวอย่างที่นำเสนอ ค่อนข้างจะเกลาจากการใช้งานมาหลายครั้งแล้ว
ต้องมีพื้นฐานสักนิดจึงจะใช้งานได้ดังใจค่ะ
คือ AJAX และ Dynamic control เล้กๆ
หลักการ ก็คงมีเท่านี้ ต่อไปเรื่อง code จะให้เขียนให้ดูเลยปะคะ
ซึ่งไม่ขัดข้องแต่อย่างใด แต่คงจะเขียนให้ทุกครั้งไปไม่ได้หรอกค่ะ
หรือจะลองไปปรับแก้เองคะ
ปล. ขอบคุณพี่ตึ๋งมากค่ะ คนไทยใจดี รักกันๆค่ะ
|
|
|
|
|
Date :
2010-05-20 20:28:13 |
By :
blurEyes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อืม คะ พอดี เพิ่งหัดเขียนคะ เลยไม่ค่อยเข้าใจ เรื่อง AJAX เท่าไหร่คะ ไม่เปนไรคะ ตอนนี้กะลังอ่านและทำความเข้าใจโค้ดที่พี่ Stupid gal ทำให้ดูอันแรกอยุ่คะ ตอนนี้ก็ลองเอาโค้ดนี้ไปปรับแก้ ลองปรับนุ่นปรับนี้ดูคะ ลองใช้ดู ขอบคุณมากนะคะ เดี๋ยวถ้ามีอะไร จะมาถามใหม่ ขอบคุณอีกครั้งคะ
|
|
|
|
|
Date :
2010-05-20 21:17:46 |
By :
Bow |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยินดีค่ะ ช่วงนี้ไม่ได้ไปไหน หยุดเรียนด้วย เวลาว่างเยอะค่ะ
|
|
|
|
|
Date :
2010-05-20 21:19:33 |
By :
blurEyes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|