ความผิดพลาดคืออาจารย์ 2

Archive for the ‘บันทึกรัก asp.net’ Category

ส่วนใหญ่ทำในโค๊ด behind..

1. ดึงข้อมูลแต่ละคอลัมน์ได้ด้วยคำสั่ง (code behind)

text1.text = CStr(dt.Rows(0).Item(“name_eng”).ToString)


2. ดึงข้อมูลมาแสดงใน dropdownlist

ในหน้า html

<asp:DropDownList ID=”ddlTitleNameTH” runat=”server” AutoPostBack=”True”>
</asp:DropDownList>

ใน code behind

‘ สร้างตัวแปร nTH รับค่าจากฐานข้อมูล

‘แล้วเพิ่มตัวเลือกใน dropdownlist ให้ครบ ด้วยคำสั่ง .Items.Add(New ListItem(“นาง”, “นาง”).ToString)

‘ ให้ dropdownlist เลือกค่าที่เท่ากับที่ดึงมาจากฐานข้อมูล ออกมาแสดง

Dim nTh As String = Trim(CStr(dt.Rows(0).Item(“title_name_thai”).ToString))
ddlTitleNameTH.Items.Add(New ListItem(“นาย”, “นาย”).ToString)
ddlTitleNameTH.Items.Add(New ListItem(“นาง”, “นาง”).ToString)
ddlTitleNameTH.Items.Add(New ListItem(“นางสาว”, “นางสาว”).ToString)
ddlTitleNameTH.SelectedIndex = ddlTitleNameTH.Items.IndexOf(ddlTitleNameTH.Items.FindByValue(nTh))

thank
http://www.velocityreviews.com/forums/t89868-dropdownlist-default-selected.html

3. ดึงข้อมูลจากฐานข้อมูลมาแสดงใน radiobutton

If Trim(CStr(dt.Rows(0).Item(“sex”).ToString)) = “ชาย” Then
radiMale.Checked = True
radiFemale.Checked = False
ElseIf Trim(CStr(dt.Rows(0).Item(“sex”).ToString)) = “หญิง” Then
radiMale.Checked = False
radiFemale.Checked = True
End If

css popup แสดงข้�มูลที่ดึงมา

css popup แสดงข้อมูลที่ดึงมา

1. สไตล์ pop up เอาไปใส่ในไฟล์ .css

.white_content {
display: none;
position: absolute;
top: 25%;
left: 25%;
width: 300px;
height: 50%;
padding: 16px;
z-index:1002;
overflow: auto;
background-color:#FFBFBF;
border-bottom: 2px solid #F9F9F9;
border-right: 2px solid #F9F9F9;
border-left:1px solid #EFE4E4;
border-top:1px solid #EFE4E4;
}

2. ลิงค์ไฟล์ .css เข้ามาใช้ในไฟล์ xxx.aspx

<link href=”../App_Themes/themeForm/themeForm.css” rel=”stylesheet” type=”text/css” />

3. ในไฟล์ xxx.aspx ให้ดึงข้อมูลมาไว้ใน gridview(อย่าลืมใส่ DataKeyNames) โค๊ดดังนี้

<asp:GridView ID=”GridView1″ runat=”server” DataKeyNames=”member_id”
AutoGenerateColumns=”False”>
<Columns>


<asp:BoundField DataField=”member_id” HeaderText=”รหัส”>
<ItemStyle Width=”100px” />
</asp:BoundField>


<asp:BoundField DataField=”first_name” HeaderText=”ชื่อ”>
<ItemStyle Width=”100px” />
</asp:BoundField>

<asp:TemplateField>
<ItemTemplate>

<a href=”javascript:void(0);” onclick=”showpop( ‘<%# DataBinder.Eval(Container.DataItem,”last_name”).tostring%>’);”>click</a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

4. สร้าง div ไว้ระหว่าง <form></form> เอาไว้นอก GridView โค๊ดดังนี้

<div id=”light” class=”white_content”>
<span id=”showw”></span>
<br />
<a href = “javascript:void(0)” onclick = “hidepop()”>Close</a>
</div>

5. สร้าง javascript ไว้ระหว่าง <head></head> โค๊ดดังนี้

<script language=”javascript” type=”text/javascript”>
function showpop(showw){
document.getElementById(‘showw’).innerHTML=showw;
document.getElementById(‘light’).style.display=’block’;

}

function hidepop(){
document.getElementById(‘light’).style.display=’none’;

}
</script>

ส่งค่าที่ต้องการแสดง ผ่าน javascript โดยให้แสดงผ่าน <span id=”showw”></span>

จบ…

ขอขอบคุณ
http://www.emanueleferonato.com/2007/08/22/create-a-lightbox-effect-only-with-css-no-javascript-needed/

1. แสดงค่าในแต่ละ field แบบเจาะจง

ในหน้า xxx.aspx สามารถใส่แบบนี้ได้

<asp:DataList ID=”DataList1″ runat=”server” GridLines=”horizontal” BorderWidth=”0px”>
<ItemTemplate>
<div style=”border:0px;”>
ตำแหน่ง :<%#DataBinder.Eval(Container.DataItem, “positions”)%>
<br />
สาขา : <%#DataBinder.Eval(Container.DataItem, “branch”)%>
<br />
เขต : <%#DataBinder.Eval(Container.DataItem, “zone”)%>
</div>
</ItemTemplate>
<SelectedItemStyle BorderWidth=”0px” />
<ItemStyle BorderWidth=”0px” />
</asp:DataList>

DetailsView �ยู่ใน Gridview

DetailsView อยู่ใน Gridview

ลองทดสอบเอา detail view มาใส่ใน gridview ทำตาม cd สอน

บางคำสั่งก็ใช้ได้บางอันก็ใช้ไม่ได้เหมือนใน cd (อาจจะเกิดจากการมั่วไปมั่วมา)

แล้วในที่สุดก็ได้… แต่พี่ที่ทำงานเค้าต้องการอีกแบบ

คือที่ gridview ปกติจะแสดง รายละเอียดออกมานิดหน่อย

แต่เมื่อเรา้คลิกที่รายละเอียดของแถวนั้น ให้แสดงรายละเอียดทั้งหมดทุกตัวอักษร

ให้แสดงออกมาในแถวนั้นๆ อืมม งงแฮะ

แต่ที่ลองทำนี้ต้อง select ตั้งสองครั้ง

แต่ก็พอใช้ได้ ถูๆ ไถๆ ตามอัถภาพ – -“


บันทึกวิธีทำ

1. ทำหน้า xxx.aspx มา

2. ลาก gridview มา

3. ให้ AutoGenerateColumns=”False”

4. กำหนด DataKeyNames=”member_id”

5. ใน <column></column> ให้ใส่คอลัมน์ของเราเข้าไป เช่น

<asp:BoundField DataField=”member_id” SortExpression=”member_id” headertext=”id” >
</asp:BoundField>

โค๊ดหน้า xxx.aspx ทั้งหมดก็มีโค๊ดดังนี้

<form id=”form1″ runat=”server”>
<asp:Label ID=”lbl1″ runat=”server”></asp:Label>
<asp:GridView ID=”GridView1″ runat=”server” BackColor=”White”
BorderColor=”#CCCCCC” BorderStyle=”None” BorderWidth=”1px” CellPadding=”3″
AutoGenerateColumns=”False” Width=”195px” DataKeyNames=”member_id”>
<RowStyle ForeColor=”#000066″ />
<FooterStyle BackColor=”White” ForeColor=”#000066″ />
<PagerStyle BackColor=”White” ForeColor=”#000066″ HorizontalAlign=”Left” />
<SelectedRowStyle BackColor=”#669999″ Font-Bold=”True” ForeColor=”White” />
<HeaderStyle BackColor=”#006699″ Font-Bold=”True” ForeColor=”White” />
<Columns>
<asp:BoundField DataField=”member_id” SortExpression=”member_id” headertext=”id” >
<HeaderStyle HorizontalAlign=”Left” />
</asp:BoundField>
<asp:BoundField DataField=”first_name” SortExpression=”first_name” headertext=”ชื่อ” >
<HeaderStyle HorizontalAlign=”Left” />
</asp:BoundField>
<asp:BoundField DataField=”last_name” SortExpression=”last_name” headertext=”รายละเอียด” >
<HeaderStyle HorizontalAlign=”Left” />
</asp:BoundField>
<asp:CommandField ShowEditButton=”True” />
<asp:CommandField ShowSelectButton=”True” />
<asp:CommandField ShowDeleteButton=”True” />

</Columns>
</asp:GridView>
<asp:DetailsView ID=”DetailsView1″ runat=”server” Height=”50px” Width=”125px”
AutoGenerateRows=”False”>
</asp:DetailsView>
</form>

6. ในหน้า xxx.aspx.vb มีโค๊ดทั้งหมดดังนี้

Option Explicit On
Option Strict On
Imports System.Data
Imports System.Data.SqlClient

Partial Class showEmp_showsub
Inherits System.Web.UI.Page

Public Enum XCol
detailcol = 2
productid
categoryid
unitprice
unitsinstock
amount
discontinued

End Enum

Private Sub ProductsData(Optional ByVal productname As String = “”)
Dim strsql As String = “select * from tblMembers”
Dim dt As New DataTable
Dim conn1 As New SqlConnection(ConfigurationManager.ConnectionStrings(“connintranet”).ConnectionString)
Dim da As New SqlDataAdapter(strsql, conn1)
da.Fill(dt)
dt.Columns.Add(“รหัส”, GetType(Integer), “member_id”)

GridView1.DataSource = dt.DefaultView

MyGridBind()
End Sub


Private Sub MyGridBind()
Dim X1() As String = {“member_id”}
GridView1.DataKeyNames = X1
GridView1.DataBind()
End Sub

Protected Sub GridView1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.Load
If Not Page.IsPostBack Then
Me.ProductsData()
Me.MyGridBind()
Else
If Session(“data”) Is Nothing Then
Me.ProductsData()
Else
GridView1.DataSource = Session(“data”)
End If
End If

End Sub

Protected Sub GridView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView1.PageIndexChanging
GridView1.PageIndex = e.NewPageIndex
Response.Write(“ddddddddd”)
Me.MyGridBind()

End Sub

Protected Sub GridView1_SelectedIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSelectEventArgs) Handles GridView1.SelectedIndexChanging

Dim a1 As DataKey = GridView1.DataKeys(e.NewSelectedIndex)

‘lbl1.Text = CStr(a1(0))
Dim strsql2 As String = “select * from tblMembers where member_id=” & CInt(a1(0))
Dim dt2 As New DataTable
Dim conn2 As New SqlConnection(ConfigurationManager.ConnectionStrings(“connintranet”).ConnectionString)
Dim da2 As New SqlDataAdapter(strsql2, conn2)
da2.Fill(dt2)

DetailsView1.DataSource = dt2
DetailsView1.DataBind()
GridView1.Rows(e.NewSelectedIndex).Cells(XCol.detailcol).Controls.Add(DetailsView1)

End Sub
End Class


ปล.

– ในซัพโพซิเยอร์ Enum XCol นั้นยังงงอยู่ว่าใช้ทำอะไรกันแน่ ถ้าเอาไว้อ้างคอลัมน์ ทำไมต้องประกาศออกมาเยอะแยะ (เพราะไม่ได้ทำตามขั้นตอนตั้งแต่แผ่นแรก)

– ข้องใจกับการ connect database จากที่เคยเขียน php พี่ๆ เค้ามักบอกว่าถ้าเราเปิด connect ไว้โดยไม่ต้องปิด จะทำให้เว็บเร็วเพราะการที่เปิดประตูไว้ เมื่อคนจะเข้าจะออกก็ไม่ต้องเสียเวลาปิดประตู(ปิด connect) แต่เท่าที่เห็น asp.net เน้นการ ปิด connect แล้วตกลงอันใหนดีกว่ากันล่ะ ???

เครียด �ยากเปลี่ยนทรงผม

เครียด อยากเปลี่ยนทรงผม

ช่วงนี้เครียดๆ เลยอยากเปลี่ยนทรงผม เห็นในอินเตอร์เน็ตทรงเก๋กู๊ดกันทั้งนั้น

เลยตัดหน้าตัวเองใส่หัวคนอื่นซะเลย สวยเช้ง

แต่เพื่อนทักว่า แก่…

หมดอารมณ์ที่จะรีทัชต่อ

เซ็งเป็ด (- -“)( -*-) ไปไกลๆ เลยไป๊


1. ถ้าจะให้ delete ได้จะต้องใส่ DeleteCommand (ใน control sqlDataSource มีทูลช่วย) และต้องใส่ DataKeyNames ตัวอย่างเช่น

<asp:GridView ID=”GridView1″ CssClass=”tblForm1″ runat=”server” AutoGenerateColumns=”False” DataSourceID=”SqlDataSource1″ AllowPaging=”True” BackColor=”LightGoldenrodYellow” BorderColor=”Tan” BorderWidth=”1px” CellPadding=”2″ ForeColor=”Black” GridLines=”None” BorderStyle=”Dotted” PageSize=”20″ Width=”699px” DataKeyNames=”empid”>

ใส่ในหน้า code behide ก็ได้(สำหรับหน้าที่รับค่ามา)

SqlDataSource1.DeleteCommand = “DELETE FROM tblEmployee WHERE [empid] = @empid”
SqlDataSource1.SelectCommand = “SELECT empid, name_thai, sname_thai, name_eng, sname_eng, positions, branch, zone, FileData1 FROM tblEmployee”
SqlDataSource1.UpdateCommand = “UPDATE tblEmployee SET name_thai = @name_thai, sname_thai = @sname_thai WHERE (empid = @empid)”


2. วิธีการทำปุ่ม ยืนยัน (Javascript confirm) เมื่อต้องการลบข้อมูลใน gridview

เิพิ่ม CommandField ชนิด delete มาก่อน แล้วดูใน source code จะเห็นเป็น

<asp:CommandField  ShowDeleteButton=”True” DeleteText=”ลบ” />

แต่รูปแบบนี้จะใส่ javascript ไม่ได้ จึงต้องไป edit ใช้คำสั่ง convert this field into a template

ซึ่งจะทำให้ source code เราเปลี่ยนไป แล้วจึงจะใส่โค๊ดที่ทำไฮไลไว้ ดังนี้

<ItemTemplate>
<asp:LinkButton ID=”LinkButton1″ runat=”server” CausesValidation=”False” CommandName=”Delete” Text=”ลบ” OnClientClick=”return confirm(‘Delete’);” ></asp:LinkButton>

</ItemTemplate>
</asp:TemplateField>

ต้�งทำแบบนี้ก่�น

ต้องทำแบบนี้ก่อน

เครดิต http://www.greatfriends.biz/webboards/msg.asp?b=SURREALIST&id=63505 ความคิดเห็นREPLY #12 (63634) คุณ jnithi


3. การทำลิงค์ แล้วส่งค่า id ไปกับลิงค์ ใน gridview

<asp:HyperLinkField DataNavigateUrlFields=”empid” DataNavigateUrlFormatString=”editEmpBasic.aspx?empid={0}” Text=”แก้ไข” />

4. การ หาผลรวม summary ในส่วน footer ของ gridview ต้องใส่โค๊ด หลังจาก gridview.databind() เส็รจแล้ว

โดยต้องเปิด showfooter = true  ก่อน

Private Sub summa()
Dim sum1 As Integer = CType(dt.Compute(“sum(empid)”, “”), Integer)
Dim sum2 As Integer = CType(dt.Compute(“sum(bdate)”, “”), Integer)
GridView1.FooterRow.Cells(0).Text = sum1.ToString(“#0.00”)
GridView1.FooterRow.Cells(1).Text = sum2.ToString(“#0.00”)
End Sub

asp.net มันไม่มี autonumber เหมือนกับใน php

ทำให้เวลาเพิ่มข้อมูลใหม่ ค่า id จะต้องเพิ่มขึ้นอีก 1

ก็นึกได้แต่วิธีบ้านๆ ด้วยการ select max ออกมา แล้วบวก 1

คิดว่ามันน่าจะมีคำสั่งอื่นที่สะดวกกว่านี้นะ

1. ประกาศตัวแปร

Public con As New SqlConnection(ConfigurationManager.ConnectionStrings(“intranetConnectionString2”).ConnectionString)
Public maxid As Integer
Public Shared msgerror As Boolean = False

2. เมื่อเพจโหลด

Dim cm_maxid As New SqlCommand(“SELECT MAX(empid)FROM tblEmployee”, con)
con.Open()


If IsDBNull(cm_maxid.ExecuteScalar()) Then
maxid = 1000
Else
maxid = CInt(cm_maxid.ExecuteScalar()) + 1
End If


con.Close()

ปล.ต้องใช้คำสั่ง IsDBNull เพื่อเช็คผลของการ select ไม่งั้น error

3. เมื่อคลิกปุ่ม submit เพื่อบันทึก

Dim ch_maxid As Integer = maxid
Dim name_th As String = txtNameTh.Text

Dim cm_addmember As New SqlCommand(“INSERT INTO tblEmployee(empid,name_thai,sname_thai,name_eng,sname_eng) VALUES(” & maxid & “,'” & txtNameTh.Text & “‘,'” & txtSnameTh.Text & “‘,'” & txtNameEng.Text & “‘,'” & txtSnameEng.Text & “‘)”, con)


con.Open()
Dim m_identity As Integer = 0
cm_addmember.ExecuteNonQuery()
con.Close()


If msgerror = False Then
Response.Write(“เพิ่มข้อมูลแล้วค่ะ”)
Response.AddHeader(“Refresh”, “5”)
End If

ในหน้า code behide

ขั้นแรก ต้องใส่

Imports System.IO

แล้วเมื่อเหตุการณ์กดปุ่ม “อัพโหลดรูปภาพ” เขียนโค๊ดดังนี้

Dim CurrentFileName As String
Dim CurrentPath As String

CurrentFileName = FileUpload1.FileName
If (Path.GetExtension(CurrentFileName).ToLower <> “.jpg”) And (Path.GetExtension(CurrentFileName).ToLower <> “.gif”) Then
Me.ClientScript.RegisterClientScriptBlock(GetType(String), “a1”, “<script language=’javascript’>alert(‘คุณเลือกไฟล์ไม่ถูกต้อง !!!’);</script>”)
Exit Sub
End If

If FileUpload1.PostedFile.ContentLength > 131072 Then
Me.ClientScript.RegisterClientScriptBlock(GetType(String), “a2”, “<script language=’javascript’>alert(‘ขนาดของไฟล์ใหญ่เกินไป ซึ่งต้องไม่เกิน 128 KB !!!’);</script>”)
Exit Sub
End If

CurrentPath = Request.PhysicalApplicationPath
CurrentPath += “\images\employeePIC\emp_”

If FileUpload1.HasFile Then
CurrentPath += CurrentFileName

FileUpload1.SaveAs(CurrentPath)
Me.ClientScript.RegisterClientScriptBlock(GetType(String), “a3”, “<script language=’javascript’>alert(‘อัพโหลดไฟล์ เรียบร้อยแล้ว’);</script>”)
Else
Me.ClientScript.RegisterClientScriptBlock(GetType(String), “a3”, “<script language=’javascript’>alert(‘ไม่สามารถอัพโหลดได้’);</script>”)
End If


alert box ด้วยจาว่าสคริปใน asp.net

alert box ด้วยจาว่าสคริปใน asp.net

– ใช้จาว่าสคริปเป็นตัว alert บอกผล ซึ่ง ใช้โค๊ดแค่บรรทัดเดียว คือ Me.ClientScript.RegisterClientScriptBlock(GetType(String), “a1”, “<script language=’javascript’>alert(‘คุณเลือกไฟล์ไม่ถูกต้อง !!!’);</script>”)

– ซึ่งจะเช็ค ประเภทของไฟล์ที่อัพโหลดให้อัพโหลดได้แต่ไฟล์นามสกุล .jpg และ .gif

– เช็คขนาดของภาพไม่เกิน 128 เค

– อัพโหลดรูปเก็บไว้ที่พาธ

directory ไฟล์เว็บ

directory ไฟล์เว็บ

** ต้องอ้างจากพาธที่แท้จริง จากตัวอย่างโค๊ดนี้ ไฟล์ที่เรากำลังเขียนอยู่นี้จะอยู่ในโฟล์เดอร์ employee แต่ต้องอ้างพาธ ไว้ที่ \images\employeePIC\emp_

เพราะไฟล์ web เรา( ชื่อว่า myweb ) อยู่ใน C:\Inetpub\wwwroot\myweb\images\employeePIC

โค๊ดนี้ได้จากหนังสือ คู่มือ ASP.NET 2.0 ฉบับสมบูรณ์ โดย ศุภชัีย สมพานิช
..เหมาะสำหรับมือใหม่มาก..



หมวดหมู่

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 335 other followers

brush photoshop

Add new tag asp.net atsme banner Blog ไทยโดเมน.in.th brush brush photoshop brush photoshop7 brush photoshop ตึก และ นก brush photoshop นักธุรกิจ Business Marketing Day chiangmai magazine cmhappy cmhappy.com cmtoday cmtoday cmhappy download brush download brushes photoshop CS4 download brush photoshop download บรัช e-atsme flash banner free domani FTP+PHP FW mail meeting menu photoshop brush download PHP RA Red Alert3 reggae sme tab thnic virus web design wordpress Yetii Yuri การทำ flash banner กินเนื้อสด ข้าวยาก หมากแพง ความฝัน ฆ่าควาย ฆ่าหมู่ จ๊อบ บรรจบ ชมรมเว็บมาสเตอร์ & ทำ web ทำเว็บ บรัช โฟโต้ช็อป ประกันชีวิต ปริญญา ปาย สวนบวกหาด สอบกพ สอบภาค ก หนังฆ่าคนดำ หน้าที่ webmaster หมาใจดำ หวยออก 111 หางดง เชียงใหม่ อ.ไชยยันต์ ไชยพร ออกแบบเว็บ เบื่อ เร้กเก้ เลี้ยงดง เว็บ SME เว็บเชียงใหม่ แจก brush photoshop แต่งภาพ แว่นตาเกาหลี แว่นตาแฟชั่น แว่นแฟชั่น
พฤศจิกายน 2019
พฤ อา
« พ.ย.    
 123
45678910
11121314151617
18192021222324
252627282930  

Blog Stats

  • 344,612 hits

ติดตามด้วย Twitter

  • กูบ่าเจื่อบ่าแคว้นมั่ง #กลิ่นกาสะลองep15 #กลิ่นกาสะลอง 3 months ago
  • RT @natthaporn5800: กูรอซีนนี้จนใจจะขาดแล้วอีเหี้ย ความฉิบหายของมึงสองป้อลูก #กลิ่นกาสะลองep14 https://t.co/Vy8tBcrV14 3 months ago
  • มีคนแจ้งแอดมินเพจจอมทองให้เคลียร์ทางให้หมอกับอี่นายเรียบร้อยละ #กลิ่นกาสะลองep12 #กลิ่นกาสะลอง #โอ้ยยยน่อ https://t.co/n5LP9AxYHR 4 months ago
  • ใจ๋หมะดี #กลิ่นกาสะลอง https://t.co/9KHyRz8uy7 4 months ago
  • 😭😭😭หายใจไม่ทั่วท้อง ฮานิบะเห้ย. #กลิ่นกาสะลอง #กลิ่นกาสะลองep10 https://t.co/kjOLfWniFr 4 months ago