 |
|
สอบถามการเรียกใช้ Button ใน TemplateField ของ GridView ต้องใส่คำสั่งประมาณไหนครับ asp.net |
|
 |
|
|
 |
 |
|
จาก #NO1 ความต้องการของคุณ/All Business ถ้าผมเป็นคนออกแบบ ผมจะทำอย่างนี้
ในซ่องรหัสV
XXXX Browse...
Select * From Where นั้นแหละ
XXXX ผมจะให้เขาป้อนเข้าไปโดยอิสระ สมมุติว่าจำรหัส ได้บางส่วน เช่น 01 ---> LookUp เจอ (จะเอาอะไรล่ะ) ก็จบ
XXXX ผมจะให้เขาป้อนเข้าไปโดยอิสระ สมมุติว่าจำคำอธิบาย/ชื่อ ได้บางส่วน เช่น ภาษี ---> LookUp เจอ (จะเอาอะไรล่ะ) ก็จบ
XXXX จำไม่ได้/ไม่อยากจำ ก็ให้เขาคลิ๊กปุ่ม Browse...
---- อันนี้ก็ว่ากันไปแต่อย่าลืมนะว่า Windows Application <> Web Application นะ (อันนี้คือคำเตือนที่คุณควรระมัดระวัง)
อยากจะเล่าต่อแต่ก็เกรงว่า คุณจะรับไม่ไหว (ชาติกำเนิดเกิดมาเป็นคุณหนู)
|
 |
 |
 |
 |
Date :
2016-08-11 20:45:32 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จาก #NO1 และ #NO2 ผมเล่าเรื่องตลกให้ฟังนะครับ (โกรธก็ไม่ว่ากัน)
คนบนดาวโลก บางคน/หลายฯคน เงินเดือน >= 100,000 บาท/US ความรู้ความสามารถล้นปรี่จนรับรู้ถึงนอกโลก
สมมุติว่า บางคน/คนส่วนใหญ่ (ก็ไอ้พวกโปรแกรมเมอร์บนดาวโลก) พวกนี้อพยพมาอยู่บนดาวพลูโต
--- บางคนก็เป็นขอทานข้างถนน บนดาวพลูโต
--- บางคนก็เป็น (ถ้าเป็นผู้หญิง) ก็มาเป็นกระหรี่บนดาวพลูโต (ค่าตัว 3 คืน 2 บาท)
--- บางคนก็เป็น (ถ้าเป็นผู้ชาย) ก็มาเป็นแมงดาบนดาวพลูโต (ค่าตัว 3 คืน 2 บาท)
--- บางคนก็เป็น (ครูบาอาจารย์ (ชาย/หญิง)) ก็มาเป็นสุนัขบนดาวพลูโต (ค่าตัว 3 คืน 2 บาท)
...
...
...
|
 |
 |
 |
 |
Date :
2016-08-11 21:00:21 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ปกติผมพัฒนาโปรแกรมเป็น Win app ให้บริษัท แต่ความต้องการที่เพิ่มขึ้นเพิ่ม
จึงเริ่มหัดเขียน asp.net ซื้อรูปแบบ Code ฝั่ง .net ก็คล้ายๆ กันแต่ก็ไม่ทั้งหมด
ในส่วนของ textbox กับ Button โปรแกรมต้องทำได้ทั้ง 2 รูปแบบทั้งกรอกลงไป หรือ Browse มา เพื่อความหลากหลายในการใช้งาน
ีเพราะ user ต้องการความง่ายในการใช้งาน
พอมี ตย.การใช้งาน FindControl ใน Gridview ไหมครับ
|
 |
 |
 |
 |
Date :
2016-08-11 21:09:38 |
By :
TheCom |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
วันนี้วันที่ 12 สิงหาคม พ.ศ. 2559 เป็นวันสำคัญสำหรับคนหลายฯคน นั่นคือคำว่า "วันแม่"
เมื่อวานตอนเย็นขณะผมกำลังเข้าห้องน้ำ ผมก็ตะโกนบอกภรรยาไปว่า "หนูฯ พรุ่งนี้ผมให้เวลาหนูกับแม่ของหนู 1 วัน เวลาตีห้า - 19.00 น PM."
(ผมมีนัดคุยกับลูกค้าเรื่องระบบงาน ERP 20.00 น PM. ก็คงคุยกันถึงรุ่งเช้าของอีกวันหนึ่ง)
ผมตั้งใจว่าจะไปจังหวัด ชัยนาท (ไปวัดปากคลองมะขามเฒ่า/วัดหลวงปู่ศุข) หรือ
อาจจะพาไปเดินเล่นทะเลที่จังหวัด ตราด (เกาะช้าง)
เวลาณ.ขณะนี้ 07.25 AM. ยังไม่ตื่นกันเลยทั้งแม่ทั้งลูก
ปล. บิดามารดาของผมท่านจากโลกใบนี้ไปนานแล้ว ญาติผู้ใหญ่ที่ผมมีอยู่ก็เหลือแค่คำว่า "แม่ยายนี่แหละ"
--- ไม่ได้รักและไม่ได้เกลียดกัน แต่ก็คุยกันได้ไม่เกิน 3 คำ ก็ทะเลาะกันประจำ
คิดเอาเองว่าผมกำลังจะสื่อถึงอะไร?...
|
 |
 |
 |
 |
Date :
2016-08-12 07:31:04 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ต่อเนื่องจาก #NO 5 อันนี้เป็น SourceCode ของจริงที่ผมเขียนเอาไว้ตั้งนานแล้ว (แน่นอนว่า ปัจจุบันนี้มันถูกปรับปรุงไปมากแล้ว แทบไม่เหลือเค้าโครงเดิม)
มันไม่ใช่แค่งานโปรแกรมมิ่งนะ แต่มันมี Algorithm และ ฺBusiness ปะปนด้วย (เรื่องของต้นทุน + บัญชีต้นทุน)
อทิเช่น รับ/จ่าย/ปรับปรุง สินค้าคงคลัง (ผมรวมให้เป็นเรื่องเดียวกัน)
--- ถ้าคุณเคยใช้โปรแกรมบัญชีสำเร็จรูปต่างฯ อทิเช่น CD/Express/AutoFeight/Eascy etc.. ก็คงจะมองภาพออก
--- (ผมจับสิ่งที่ดีฯของแต่ละโปรแกรมมายำรวมกัน)
Code (VB.NET)
Imports Newtonsoft.Json
Public Class usrCtrl_IC_A1_01_
Inherits System.Web.UI.UserControl
Implements System.Web.UI.ICallbackEventHandler
Public Property curActions() As String
Get
Return ViewState("curActions")
End Get
Set(value As String)
ViewState("curActions") = value
End Set
End Property
Private Sub Page_Init(sender As Object, e As System.EventArgs) Handles Me.Init
'ยังไม่ได้กำหนดสิทธิ์การเข้าใช้งาน
Toolbar931.FindControl("Post").Visible = True
Toolbar931.FindControl("AdvSearch").Visible = True
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If curActions Is Nothing Then
curActions = Page.Items("IC_A1")
txtPrefix.Text = curActions
lblWLMD.Text = String.Format("บันทึกแก้ไขรายการ {0} สินค้าคงคลัง [IC_A1_01-RV-001]", (New Dictionary(Of String, String) From
{{"RC", "รับ"}, {"IS", "จ่าย"}, {"AJ", "ปรับปรุง"}})(curActions))
Dim upn As UpdatePanel = Me.Parent.FindControl("upnIC_MainMen")
Dim txtSearch As String = Toolbar931.FindControl("txtSearch").ClientID
Dim txtSearchValue As String = DirectCast(Toolbar931.FindControl("txtSearch"), TextBox).Text
If upn IsNot Nothing Then
Dim obj2Name As String = DirectCast(Me.FindControl("txtTran_TypeDesc"), TextBox).ClientID
Dim strJS As New StringBuilder()
Dim curModule As String = DirectCast(Me.Page.Master.FindControl("TCM_cpCurentModule"), Label).ClientID
Dim curSubModule As String = DirectCast(Me.Page.Master.FindControl("lblcpCurentModule"), Label).ClientID
strJS.Append(" function LookupTab2(tabType, tabCode, event, obj1, obj2Name) {")
strJS.Append(" var p = window.event ? event.keyCode : event.which;")
strJS.Append(" if (p == 9 || p == 38 || p == 40 || p == 37 || p == 39 || p == 36 || p == 35) { return true; }")
strJS.Append(" var obj2;")
strJS.Append(" if (obj2Name == 'lblPart_Desc') {")
strJS.Append(" obj2 = $(obj1).closest('.PartCode').parent().find('.PartName')[0];")
strJS.Append(" } else {")
strJS.Append(" obj2 = document.getElementById(obj2Name);")
'strJS.Append(" obj2 = $('#'+obj2Name);")
strJS.Append(" }")
strJS.Append(" var key = tabType + tabCode + obj1.value.toUpperCase();")
strJS.Append(" WL_ERP.WL_WSLookupTab.GetBasicDataTab(key, PrdSucCallback, PrdFailCallback, obj2);")
strJS.Append(" }")
strJS.Append(" function PrdSucCallback(result, obj) {")
strJS.Append(" obj.value = result ? result : '';") 'IE-OK, FireFox-OK, Chrome-OK
strJS.Append(" }")
strJS.Append(" function PrdFailCallback(result, obj) {")
strJS.Append(" obj.value = '';")
strJS.Append(" }")
strJS.Append(" }")
ScriptManager.RegisterClientScriptBlock(upn, upn.GetType(), New Guid().ToString(), strJS.ToString(), True)
End If
txtTran_Type.Attributes.Add("onkeyup", "LookupTab2('TRN_TAB','" & curActions & "', event, this, '" & txtTran_TypeDesc.ClientID & "');")
txtWarehouse.Attributes.Add("onkeyup", "LookupTab2('WHS_TAB', '" & GetSignOnUserInfo().OrgCode & "', event, this, '" & lblWarehouse.ClientID & "');")
End If
If ViewState("curPage") Is Nothing Then
Call WL_Common.GridManager.SetGridViewInformation(gvrptFormat, {"เลขที่เอกสาร", "วันที่เอกสาร", "คลังสินค้า", "รหัสรายการ", "คำอธิบาย"},
{"Doc_NO", "Doc_Date", "From_WHS", "Tran_Code", "Tran_Desc"},
{"100", "90", "200", "200", "200"},
{"C", "C", "C", "C", "C"},
{"L", "L", "L", "L", "L"},
{"L", "L", "L", "L", "L"})
Dim formatDate As String = "{0:dd-mm-yyyy}"
Dim bf As BoundField
bf = gvrptFormat.Columns(1)
bf.DataFormatString = formatDate
Dim lstH = WL_BLL.ICH.GetListINFO_A(curActions)
ViewState("curPage") = lstH
gvrptFormat.DataSource = lstH.ToList()
gvrptFormat.DataBind()
End If
'ข้อมูลหน่วยนับ
If ViewState("curPage1") Is Nothing Then
ViewState("curPage1") = WL_BLL.UM_Tab.GetList()
End If
AddHandler DirectCast(Me.Parent.Page, IC_MainMenu).btnOKCallBack_Click, AddressOf CallBack_Click
AddHandler DirectCast(Me.Page.Master, WL_ERP_Center_03).mstCheckGridViewDoubleClick, AddressOf GridViewDoubleClick
AddHandler DirectCast(Me.Page, IC_MainMenu).btnOKGetBasicData_Click, AddressOf BrowBasicData
'วางคอนโทรลเอาไว้ที่เดียว IC_MainMenu
AddHandler DirectCast(Me.Page, IC_MainMenu).btnOKCancel_Click, AddressOf oth1_oth2_back3_Click
End Sub
End Class
|
 |
 |
 |
 |
Date :
2016-08-12 07:53:35 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จาก #NO6 สิ่งที่น่าสนใจก็คือผมมีการใช้ Master Page และความเป็นหนึ่งเดียว(ถ้ามันเป็นเรื่องเดียวกัน)
ตัวอย่างรูปภาพประกอบความเข้าใจ (สมัยนั้นตอนที่ผมหัดเขียนใหม่ฯ)


ก็อย่างที่บอกโครงสร้างปัจจุบัน มันเปลี่ยนไปเยอะมาก (ไม่เหลือเค้าโครงเดิม) เพื่ออะไร?
--- ผมดึงข้อมูลหลักล้านระเบียนผ่าน Web ได้แบบสะบายฯ (รู้สึกได้ถึง Windows Application)
--- อะไรที่แย่ก็ปรับปรุงให้มันดีขึ้น อะไรที่ดีก็ปรับปรุงให้มันดียิ่งฯขึ้นไปอีก
ปล. น่าเชื่อไหมว่า? ผมเขียนคนเดียว (แน่นอนว่า SourceCode สะเปะสะปะ ย่อมไม่มี)
|
 |
 |
 |
 |
Date :
2016-08-12 08:26:11 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แถมให้อีกอันหนึ่ง เพื่อเป็นแรงบันดาลใจให้กับคนที่มีความพยายาม (มากพอ)
---- สมัยนั้นหน้าตาพอดูได้แต่ ยังไม่ดีพอ (รูปในอดีต) แต่มันอาจจะดูดีในสายตาของคนพยายามไม่มากก็อาจเป็นไปได้เหมือนกัน

จากรูปภาพด้านบน ปัจจุบันนี้เปลี่ยนไปหมดแล้ว ทั้งหน้าตาอ (สวยด้วยมีดหมอนั่นแหละ) และ
Algorithm ประมาณ BMW/BENZE ถูกใส่เข้าไป (ไม่เหลือจีน/ญี่ปุ่นให้เห็น) ผมแค่ยกยออดีตให้ฟังเฉยฯ ครับ
|
 |
 |
 |
 |
Date :
2016-08-12 08:45:39 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ
|
 |
 |
 |
 |
Date :
2016-08-15 08:58:26 |
By :
TheCom |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จาก #NO 9 ผมมีคำถามดังนี้? (สมองมันคิดตลอด 24 ชั่วโมง)
จากรูปภาพด้านล่างนี้ มันเป็น Windows Application

--- Jquery/JavaScript (แบบของดีและฟรี) มันมีไหม/มันทำแบบนี้ได้ไหม? (ครับ)
ปล. ผมถามเป็นพิธีไปอย่างนั้นแหละ (ผมรู้คำตอบอยู่แล้ว)
|
 |
 |
 |
 |
Date :
2016-08-17 15:16:29 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จาก #NO10 จริงฯ อยากได้แบบนี้ด้วยซ้ำไป
เวลาตรวจงาน/หมั่นใส้(คนรู้จริง) (เอาไว้แกล้ง Tools)

ปล. โปรแกรมเมอร์บางคน(ส่วนใหญ่มั้ง) "ทำให้ตายเต็มที่ก็ได้แค่คำชมว่า 'ขยัน'"
|
 |
 |
 |
 |
Date :
2016-08-17 15:56:18 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อันนี้ขำฯ VB.NET ล้อเล่นกับโปรแกรมเมอร์ C# (+55555)
MVC + EF6 (คุณห้ามตอบเกินวันละสองกระทู้ แนะนำเอาไว้)
---- ผมมานั่งแกะดูใส้ในของมัน (ความรู้ที่ผมมีอยู่ - 10 ปี) ในเรื่องแบบนี้
---- ...
---- ...
---- ...
อนุมานได้ว่า "ความรู้พวกนี้มันก็พอฯกับ NOKIA 3310"
|
 |
 |
 |
 |
Date :
2016-08-17 16:16:38 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
NOKIA 3310 == มองดูไกลฯ มันก็เหมือนภรรยาสวมใส่(ปจด)
--- มองดูไกล้ฯ มันก็คล้ายฯ อาวุธ (11 มม๗
--- มองผ่านฯ มันก็เหมือนผ้าอนามัย
--- etc...
...
...
...
+55555
|
 |
 |
 |
 |
Date :
2016-08-17 16:20:18 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองใช้ event gridview_rowcommand
Code (C#)
void gv_RowCommand(Object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "MyCommand") //เป็นเชื่อปุ่มนะครับ
{
}
}
|
 |
 |
 |
 |
Date :
2016-08-21 07:13:31 |
By :
bigsuntat |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|