Textbox แสดงค่า คอมมา เมื่อ user พิมพ์ ขอcode หน่อยคับ
ใช้ CDBL() หรือ Function Relace(String,",","") ครับ
Date :
2010-05-08 19:36:52
By :
webmaster
ไม่เข้าใจอ่ะ เหอะ ๆ รบกวน อาจารย์ ช่วย อธิบายใหม่ได้ป่ะคับ
ขอ MSN ได้ม้า.....
Date :
2010-05-08 20:12:57
By :
bloodeye
ช่วยสอน หน่อยคับ อาจารย์ T^T ทำไมทำไม่ได้ซะที
ผมทำแบบนี้ ก็ยังไม่ได้อ่ะคับ ชวยสอนหน่อยนะคับ
Code (C#)
protected void Page_Load(object sender, EventArgs e)
{
}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
try
{
TextBox1.Text = String.Format("{0:#,###,##}", Convert.ToInt32(TextBox1.Text));
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}
Date :
2010-05-10 20:00:38
By :
bloodeye
อธิบายไม่ชัดไม่มีใครช่วยได้หรอกครับ
จะให้ user พิมพ์จำนวนตัวเลขใช่ไหมครับ แล้วให้แสดง comma ขั้นในหลักพัน หลักล้าน
แต่เวลาเอาลงฐานข้อมูลให้เอา comma ออก แบบนี้ใช่ไหมครับ
ถ้าเอาแบบง่ายๆ ก็ ปล่อยให้ user พิมพ์ไปเลยแล้วเวลาจะเก็บค่อยใช้ Text.Box1.Replace("'", String.Empty)
Date :
2010-05-10 22:30:49
By :
tungman
1. คือ เวลาที่ user พิมพ์ จำนวนเงินลงไป ใน textbox ให้แสดง comma ขึ้นมาเลยน่ะคับ (เหมือน ๆ กับ เครื่องคิดเลขอ่ะคับ)
2. เวลาที่เราจะเก็บค่าลง DBS ให้ ตัด comma ออกไปอ่ะคับ(เพื่อใช้ในการคำนวนอ่ะคับ)
ไม่รู้่ว่าจะใช้ RegularExpression ได้หรือปล่าว แต่ผมลองดูแล้ว มันก็ ไม่ได้อ่ะสิคับ เลยไม่รู้จะทำไงดี
รวบกวนอาจารย์ ทุกท่าน ช่วยแนะนำหน่อยนะคับ จะเป็นพระคุณ อย่าง สูง ^^"
Date :
2010-05-11 13:41:46
By :
bloodeye
ข้อ 1 ใช้ js
ช้อ 2 ใช้ dot net
Date :
2010-05-11 14:30:34
By :
แวะมาดู
มือใหม่ก็เงี้ย ชอบใส่ลูกเล่นเยอะๆ เล่นสักพักเดี๋ยวก็เบื่อ
หลังๆ เน้นแต่ performance อย่างเดียวหน้าตาธรรมดาสุดๆ สูงสุดคืนสู่สามัญกันไปเลย
CurrencyTextBox.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CurrencyTextBox.aspx.cs" Inherits="CurrencyTextBox" %>
<!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">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" />
<br />
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>
CurrencyTextBox.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
public partial class CurrencyTextBox : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Width = 200;
/* ตรวจสอบคีย์อนุญาตให้ใช้เฉพาะตัวเลข จุด แบคสเปช */
JavaScript_KeyPress();
TextBox1.Attributes.Add("onkeypress", "return KeyPress(event);");
/* จัดรูปแบบจำนวนตัวเลข */
JavaScript_KeyUp();
TextBox1.Attributes.Add("onkeyup", string.Format("javascript:KeyUp('{0}');", TextBox1.ClientID));
Button1.Click += new EventHandler(Button1_Click);
}
protected void JavaScript_KeyUp()
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("function KeyUp(txtBoxName)\n");
stringBuilder.Append("{\n");
stringBuilder.Append("\tvar txtBox = document.getElementById(txtBoxName);\n");
stringBuilder.Append("\tvar source = txtBox.value.replace(/,/gi, \"\").split(\".\", 2);\n");
stringBuilder.Append("\tvar output = \"\";\n");
stringBuilder.Append("\tvar decimal = \"\";\n\n");
stringBuilder.Append("\tif (source[0].length > 3)\n");
stringBuilder.Append("\t{\n");
stringBuilder.Append("\t\tvar count = source[0].length % 3;\n\n");
stringBuilder.Append("\t\tif (count == 0) count = 3;\n\n");
stringBuilder.Append("\t\toutput = source[0].substring(0, count);\n\n");
stringBuilder.Append("\t\tfor (var i = 0; i < (source[0].length / 3) - 1; i++)\n");
stringBuilder.Append("\t\t{\n");
stringBuilder.Append("\t\t\toutput += \",\" + source[0].substring((i * 3) + count, (i * 3) + 3 + count);\n");
stringBuilder.Append("\t\t}\n\n");
stringBuilder.Append("\t\tif (source[1] != null) decimal = \".\" + source[1];\n\n");
stringBuilder.Append("\t\ttxtBox.value = output + decimal;\n");
stringBuilder.Append("\t}\n");
stringBuilder.Append("\telse\n");
stringBuilder.Append("\t{\n");
stringBuilder.Append("\t\toutput = (source[0] == \"\" && txtBox.value.substring(0, 1) == \".\") ? \"0\" : source[0];\n");
stringBuilder.Append("\t\tdecimal = (source[1] != null) ? \".\" + source[1] : \"\";\n\n");
stringBuilder.Append("\t\ttxtBox.value = output + decimal;\n");
stringBuilder.Append("\t}\n");
stringBuilder.Append("}\n\n");
ClientScriptManager ClientScript = Page.ClientScript;
if (!ClientScript.IsClientScriptBlockRegistered(this.GetType(), "JavaScript_KeyUp"))
ClientScript.RegisterClientScriptBlock(this.GetType(), "JavaScript_KeyUp", stringBuilder.ToString(), true);
}
protected void JavaScript_KeyPress()
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("function KeyPress(e)\n");
stringBuilder.Append("{\n");
stringBuilder.Append("\tvar keynum;\n");
stringBuilder.Append("\tvar keychar;\n");
stringBuilder.Append("\tvar numcheck;\n\n");
stringBuilder.Append("\tif (window.event) // IE\n");
stringBuilder.Append("\t{\n");
stringBuilder.Append("\t\tkeynum = e.keyCode;\n");
stringBuilder.Append("\t}\n");
stringBuilder.Append("\telse if (e.which) // Netscape/Firefox/Opera\n");
stringBuilder.Append("\t{\n");
stringBuilder.Append("\t\tkeynum = e.which;\n");
stringBuilder.Append("\t}\n\n");
stringBuilder.Append("\tkeychar = String.fromCharCode(keynum);\n");
stringBuilder.Append("\tnumcheck = /\\d|[\\b]|[\\.]/;\n\n");
stringBuilder.Append("\treturn numcheck.test(keychar);\n");
stringBuilder.Append("}\n\n");
ClientScriptManager ClientScript = Page.ClientScript;
if (!ClientScript.IsClientScriptBlockRegistered(this.GetType(), "JavaScript_KeyPress"))
ClientScript.RegisterClientScriptBlock(this.GetType(), "JavaScript_KeyPress", stringBuilder.ToString(), true);
}
protected void Button1_Click(object sender, EventArgs e)
{
double Currentcy = double.Parse(TextBox1.Text.Replace(",", string.Empty));
Label1.Text = Currentcy.ToString();
}
}
Date :
2010-05-11 17:23:44
By :
tungman
อะนะพี่ตึ๋งศรี จะเปิดรายการสอนไปบ่นไปละหรอคะ งืมงำๆจังอะ
เอาเป็นว่าเป็นทางเลือกที่สองละกันค่ะ วิธีนี้ code น้อยมาก ใช้ MS AJAX LIBRARY มาช่วยค่ะ
ขั้นตอนแรกในกรณี VSS 2008 หรือต่ำกว่าให้ไป load MS AJAX LIBRARY มาติดตั้งก่อน
จากที่นี่ค่ะ http://www.asp.net/ajaxlibrary/download.ashx
จะได้ว่า
Code (ASP)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<!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:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:MaskedEditExtender ID="MaskedEditExtender1" runat="server" MaskType="Number"
Mask="9,999,999.99" TargetControlID="TextBox1">
</asp:MaskedEditExtender>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</div>
</form>
</body>
</html>
in code behide
Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string tempStr = this.TextBox1.Text.Trim().Replace(",", string.Empty);
double myData = Convert.ToDouble(tempStr.Length == 0 ? "0" : tempStr);
Response.Write(this.TextBox1.Text + " convert to " + myData.ToString());
}
}
ตัว MaskEditExtender ของ AJAX LIBRARY จะทำหน้าที่คล้ายๆกับใน winapp ค่ะ
ซึ่งจะอนุญาติเฉพาะ MASK ที่เรากำหนดในที่นี้คือ DIGIT ONLY
แล้วก้อเขียน Code be hide ตามปกติไปค่ะเพราะเป็น server control
Date :
2010-05-11 20:03:34
By :
blurEyes
T^T ซึ่ง ๆ งงตึ๋บ มาหลาย อาทิตย์ ทำไม่ได้ ขอบคุณมาก ๆ คับ อาจารย์ ทุกท่านและ เจ้าของเวปนี้ด้วย คับ
Date :
2010-05-20 09:20:53
By :
bloodeye
ขอบคุณมาก เลยค่ะ Ajax Toolkit ช่วยคุณได้ 555
Date :
2010-05-25 21:24:11
By :
catper001
Load balance : Server 01