 |
|
[Asp.net#VB]โชว์ ตารางฐานข้อมูล ให้ admin แก้ไข ลบ ทำยังไงครับ |
|
 |
|
|
 |
 |
|
ขอดูโค้ดหน่อยครับ ว่าใช้ master page ถูกไหม
|
 |
 |
 |
 |
Date :
2010-08-29 09:07:43 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (ASP)
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage/MasterPage.master" AutoEventWireup="false" CodeFile="edit.aspx.vb" Inherits="edit" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.sqlclient" %>
<script runat="server">
Dim objConn As SqlConnection
Dim objCmd As SqlCommand
Dim strSQL As String
Sub Page_Load(sender As Object, e As EventArgs)
Dim strConnString As String
strConnString = "Data Source=DELL_BLUE-PC;Initial Catalog=UTCCResearch;Integrated Security=True"
objConn = New SqlConnection(strConnString)
objConn.Open()
IF Not Page.IsPostBack() Then
BindData()
End IF
End Sub
Sub BindData()
strSQL = "SELECT * FROM [Uc-Member]"
Dim dtReader As SqlDataReader
objCmd = New SqlCommand(strSQL, objConn)
dtReader = objCmd.ExecuteReader()
'*** BindData to DataGrid ***'
myDataGrid.DataSource = dtReader
myDataGrid.DataBind()
dtReader.Close()
dtReader = Nothing
End Sub
Sub Page_UnLoad()
objConn.Close()
objConn = Nothing
End Sub
Sub modEditCommand(sender As Object, e As DataGridCommandEventArgs)
myDataGrid.EditItemIndex = e.Item.ItemIndex
myDataGrid.ShowFooter = False
BindData()
End Sub
Sub modCancelCommand(sender As Object, e As DataGridCommandEventArgs)
myDataGrid.EditItemIndex = -1
myDataGrid.ShowFooter = True
BindData()
End Sub
Sub myDataGrid_ItemCommand(source As Object, e As DataGridCommandEventArgs)
If e.CommandName = "Add" Then
'*** UserID ***'
Dim txtUserID As TextBox = CType(e.Item.FindControl("txtAddUserID"), TextBox)
'*** UserName ***'
Dim txtUserName As TextBox = CType(e.Item.FindControl("txtAddUsername"), TextBox)
'*** Password ***'
Dim txtpassword As TextBox = CType(e.Item.FindControl("txtAddPassword"), TextBox)
'*** Name ***'
Dim txtName As TextBox = CType(e.Item.FindControl("txtAddName"), TextBox)
'*** Name ***'
Dim txtLastName As TextBox = CType(e.Item.FindControl("txtAddlastName"), TextBox)
'*** Email ***'
Dim txtEmail As Textbox = CType(e.Item.FindControl("txtAddEmail"),Textbox)
'*** Address ***'
Dim txtAddress As TextBox = CType(e.Item.FindControl("txtAddAddress"), TextBox)
'*** Type ***'
Dim txtType As DropDownList = CType(e.Item.FindControl("txtAddType"), DropDownList)
strSQL = "INSERT INTO [Uc-Member] (UserID,Username,UserPassword,Name,LastName,Email,Address,Type) VALUES ('" & txtUserID.Text & "','" & txtUserName.Text & "','" & txtpassword.Text & "','" & txtName.Text & "','" & txtLastName.Text & "','" & txtEmail.Text & "','" & txtAddress.Text & "','" & txtType.Text & "') "
objCmd = New SqlCommand(strSQL, objConn)
objCmd.ExecuteNonQuery()
BindData()
End If
End Sub
Sub modDeleteCommand(sender As Object, e As DataGridCommandEventArgs)
strSQL = "DELETE FROM [Uc-Member] WHERE UserID = '" & myDataGrid.DataKeys.Item(e.Item.ItemIndex) & "'"
objCmd = New SqlCommand(strSQL, objConn)
objCmd.ExecuteNonQuery()
myDataGrid.EditItemIndex = -1
BindData()
End Sub
Sub modUpdateCommand(s As Object, e As DataGridCommandEventArgs)
'*** UserID ***'
Dim txtUserID As TextBox = CType(e.Item.FindControl("txtAddUserID"), TextBox)
'*** UserName ***'
Dim txtUserName As TextBox = CType(e.Item.FindControl("txtAddUsername"), TextBox)
'*** Password ***'
Dim txtpassword As TextBox = CType(e.Item.FindControl("txtAddPassword"), TextBox)
'*** Name ***'
Dim txtName As TextBox = CType(e.Item.FindControl("txtAddName"), TextBox)
'*** Name ***'
Dim txtLastName As TextBox = CType(e.Item.FindControl("txtAddlastName"), TextBox)
'*** Email ***'
Dim txtEmail As TextBox = CType(e.Item.FindControl("txtAddEmail"), TextBox)
'*** Address ***'
Dim txtAddress As TextBox = CType(e.Item.FindControl("txtAddAddress"), TextBox)
'*** Type ***'
Dim txtType As DropDownList = CType(e.Item.FindControl("txtAddType"), DropDownList)
strSQL = "UPDATE [Uc-Member] SET UserID = '" & txtUserID.Text & "' " & _
" ,Username = '" & txtUserName.Text & "' " & _
" ,UserPassword = '" & txtpassword.Text & "' " & _
" ,Name = '" & txtName.Text & "' " & _
" ,Email = '" & txtEmail.Text & "' " & _
" ,Address = '" & txtAddress.Text & "' " & _
" ,Type = '" & txtType.Text & "' " & _
" WHERE UserID = '" & myDataGrid.DataKeys.Item(e.Item.ItemIndex) & "'"
objCmd = New SqlCommand(strSQL, objConn)
objCmd.ExecuteNonQuery()
myDataGrid.EditItemIndex = -1
myDataGrid.ShowFooter = True
BindData()
End Sub
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:DataGrid id="myDataGrid" runat="server" AutoGenerateColumns="False"
ShowFooter="True"
DataKeyField="UserID"
OnEditCommand="modEditCommand"
OnCancelCommand="modCancelCommand"
OnDeleteCommand="modDeleteCommand"
OnUpdateCommand="modUpdateCommand"
onItemCommand="myDataGrid_ItemCommand">
<Columns>
<asp:TemplateColumn HeaderText="UserID">
<ItemTemplate>
<asp:Label id="lblUserID" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.UserID") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtEditUserID" size="5" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.UserID") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox id="txtAddUserID" size="5" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="UserName">
<ItemTemplate>
<asp:Label id="lblUserName" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.UserName") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtEditUserName" size="10" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.UserName") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox id="txtAddUserName" size="10" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="UserPassword">
<ItemTemplate>
<asp:Label id="lblPassword" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.UserPassword") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtEditPassword" size="5" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.UserPassword") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox id="txtAddPassword" size="5" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Name">
<ItemTemplate>
<asp:Label id="lblName" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Name") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtEditName" size="10" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Name") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox id="txtAddName" size="10" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="LastName">
<ItemTemplate>
<asp:Label id="lblLastName" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.LastName") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtEditLastName" size="10" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.LastName") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox id="txtAddLastName" size="10" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Email">
<ItemTemplate>
<asp:Label id="lblEmail" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Email") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtEditEmail" size="20" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Email") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox id="txtAddEmail" size="20" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Address">
<ItemTemplate>
<asp:Label id="lblAddress" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Address") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtEditAddress" size="2" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Address") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox id="txtAddAddress" size="2" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Type">
<ItemTemplate>
<asp:Label id="lblBudget" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Type") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="txtEditType" size="6" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Type") %>'></asp:DropDownList>
</EditItemTemplate>
<FooterTemplate>
<asp:DropDownList id="txtAddType" size="6" runat="server"></asp:DropDownList>
<asp:Button id="btnAdd" runat="server" Text="Add" CommandName="Add"></asp:Button>
</FooterTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel" EditText="Edit" HeaderText="Modify" ></asp:EditCommandColumn>
<asp:ButtonColumn Text="Delete" CommandName="Delete" HeaderText="Delete"></asp:ButtonColumn>
</Columns>
</asp:DataGrid>
</asp:Content>
นี้ครับ พอเปิด ขึ้นมาสเตอรืเพจ ครับ แต่ ข้อมูลไม่ขึ้นเลย เหมือนเราเปิดหน้า มาสเตอร์เพจ ขึ้นมา
|
 |
 |
 |
 |
Date :
2010-08-29 15:02:22 |
By :
Gooner |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
หุหุ รู้แล้วครับว่าเพราะอะไร
งั้นขอดูส่วนของ content page ด้วยครับ
ปล. เข้าใจว่าคงไม่มีใช่ไหมครับ เรียกเพจจาก master page โดยตรงใช่ไหม
|
 |
 |
 |
 |
Date :
2010-08-29 16:01:53 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
ส่วนนี้ของ MasterPage ครับกำหนดไว้ที่เดียว
|
 |
 |
 |
 |
Date :
2010-08-29 19:41:14 |
By :
Goomer |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใช้ master page จำเป็นต้องมี content page มารองรับครับ
master page เปรียบเสมือน กรอกรูป
content page เปรียบเสมือน รูปภาพ
สามารถถอดเปลี่ยนได้โดยใช้กรอบรูปเดิม
และเราไม่สามารถเรียก master page ได้โดยตรงต้องเรียกผ่าน content page ครับ
|
ประวัติการแก้ไข 2010-08-29 20:42:49
 |
 |
 |
 |
Date :
2010-08-29 20:42:05 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ยังไงอ่ะครับ
เพราะ ใน marterpage ผมก็ได้สร้าง content pageไว้แล้ว
ส่วนหน้า แสดงฐานข้อมุลก็ให้มันแสดงที่ <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> นั้นแล้ว
|
 |
 |
 |
 |
Date :
2010-08-31 19:36:45 |
By :
Gooner |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มันต้องมีสองไฟล์
file master page สร้าง ContentPlaceHolder เอาไว้เพื่อรองรับ content จาก content page (ไม่ต้องโค้ดอะไรทั้งสิ้น)
file content page ตอนสร้างต้องตื๊กที่ user master page แล้วเลือก master page ที่ต้องการใช้ เราจะต้องโค้ดส่วนของ content ในไฟล์นี้
เวลาเรียกก็เรียกจากชื่อของ content file
|
 |
 |
 |
 |
Date :
2010-08-31 21:06:15 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใช้ครับ ผมวาทำตาม นั้นแล้ว ครับ
[font=Verdana]file master page สร้าง ContentPlaceHolder เอาไว้เพื่อรองรับ content จาก content page (ไม่ต้องโค้ดอะไรทั้งสิ้น)
ก็คือ[/font] <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
ส่วนนี้ของ MasterPage ครับกำหนดไว้ที่เดียว
----
[font=Verdana]file content page ตอนสร้างต้องตื๊กที่ user master page แล้วเลือก master page ที่ต้องการใช้ เราจะต้องโค้ดส่วนของ content ในไฟล์นี้[/font]
ติ็กแล้วครับ
---
[font=Verdana]เวลาเรียกก็เรียกจากชื่อของ content file[/font]
ส่วนหน้า แสดงฐานข้อมุลก็ให้มันแสดงที่ <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
อันอื่นผมทำได้หมดครับ ยกเว้นเฉพาะ หน้าจะ มันจะขึ้นแต่ masterpage ไม่ขึ้น ฐานข้อมูลที่จะมาแสดง
|
 |
 |
 |
 |
Date :
2010-08-31 21:31:13 |
By :
Gooner |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แสดงว่า แก้โค้ดด้านบน แยกเป็น 2 file แล้ว (no.2)
แต่ยังข้อมูลไม่ออก
|
 |
 |
 |
 |
Date :
2010-08-31 21:36:20 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใช้เลยครับ
ผมก็เลย ลอง ทำ หน้า ฐานข้อมูลใหม่ เอาแค่โชว์พอเพื่อ อันนี้ผิด (อันนี้คือ code ที่ให้ดูทั้งการมีแก้ไขการเพิ่มด้วย) ปรากฎว่าเป็นเหมือนกันครับ โชว์ใน masterpage ไม่ได้
แต่ถ้า โชว์เดี่ยวๆ เลยได้ครับ แบบไม่ อิงกับ masterpage
|
 |
 |
 |
 |
Date :
2010-08-31 21:53:35 |
By :
Gooner |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
งั้นเอาโค้ดทั้งสองอันมาดูดิ๊
|
 |
 |
 |
 |
Date :
2010-08-31 21:58:25 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไฟล์ให้โชว์ฐานข้อมูล บน masterPage
Code (ASP)
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage/MasterPage.master" AutoEventWireup="false" CodeFile="testmaster.aspx.vb" Inherits="testmaster" %>
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.SqlClient"%>
<script runat="server">
Dim objConn As SqlConnection
Dim objCmd As SqlCommand
Dim strSQL As String
Dim dtReader As SqlDataReader
Sub Page_Load(sender As Object, e As EventArgs)
Dim strConnString As String
strConnString = "Data Source=DELL_BLUE-PC;Initial Catalog=UTCCResearch;Integrated Security=True"
objConn = New SqlConnection(strConnString)
objConn.Open()
IF Not Page.IsPostBack() Then
BindData()
End IF
End Sub
Sub BindData()
strSQL = "SELECT * FROM Member"
objCmd = New SqlCommand(strSQL, objConn)
dtReader = objCmd.ExecuteReader()
'*** BindData to Repeater ***'
myRepeater.DataSource = dtReader
myRepeater.DataBind()
dtReader.Close()
dtReader = Nothing
End Sub
Sub Page_UnLoad()
objConn.Close()
objConn = Nothing
End Sub
Sub myRepeater_ItemCommand(ByVal source As Object, ByVal e As RepeaterCommandEventArgs) Handles myRepeater.ItemCommand
IF e.CommandName = "Delete" Then
'*** Userid ***'
Dim lblUserId As Label = CType(e.Item.FindControl("lblUserid"), Label)
strSQL = "DELETE FROM Member WHERE userid = '" & lblUserid.Text & "' "
objCmd = New SqlCommand(strSQL, objConn)
objCmd.ExecuteNonQuery()
BindData()
End IF
End Sub
Sub myRepeater_ItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) Handles myRepeater.ItemDataBound
'*** UserID ***'
Dim lblUserID As Label = CType(e.Item.FindControl("lblUserID"), Label)
If Not IsNothing(lblUserID) Then
lblUserID.Text = e.Item.DataItem("userID")
End If
'*** Username ***'
Dim lblUsername As Label = CType(e.Item.FindControl("lblUsername"), Label)
If Not IsNothing(lblUsername) Then
lblUsername.Text = e.Item.DataItem("username")
End If
'*** Password ***'
Dim lblPassword As Label = CType(e.Item.FindControl("lblPassword"), Label)
If Not IsNothing(lblPassword) Then
lblPassword.Text = e.Item.DataItem("UserPassword")
End If
'*** Name ***'
Dim lblName As Label = CType(e.Item.FindControl("lblName"), Label)
If Not IsNothing(lblName) Then
lblName.Text = e.Item.DataItem("Name")
End If
'*** LastName ***'
Dim lbllname As Label = CType(e.Item.FindControl("lbllname"), Label)
If Not IsNothing(lbllname) Then
lbllname.Text = e.Item.DataItem("Lastname")
End If
'*** Email ***'
Dim lblEmail As Label = CType(e.Item.FindControl("lblEmail"), Label)
If Not IsNothing(lblEmail) Then
lblEmail.Text = e.Item.DataItem("Email")
End If
'*** Address ***'
Dim lblAddress As Label = CType(e.Item.FindControl("lblAddress"), Label)
If Not IsNothing(lblAddress) Then
lblAddress.Text = e.Item.DataItem("Address")
End If
'*** Delete ***'
Dim lnkDelete As LinkButton = CType(e.Item.FindControl("lnkDelete"), LinkButton)
If Not IsNothing(lnkDelete) Then
lnkDelete.Attributes.Add("OnClick", "return confirm('Delete Record?');")
End If
End Sub
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Repeater id="myRepeater" runat="server">
<HeaderTemplate>
<table border="1">
<tr>
<th>UserId</th>
<th>Username</th>
<th>Password</th>
<th>Name</th>
<th>Lastname</th>
<th>Email</th>
<th>Address</th>
<th>Delete</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td align="center"><asp:Label id="lblUserID" runat="server"></asp:Label></td>
<td align="center"><asp:Label id="lblUsername" runat="server"></asp:Label></td>
<td><asp:Label id="lblPassword" runat="server"></asp:Label></td>
<td><asp:Label id="lblName" runat="server"></asp:Label></td>
<td align="center"><asp:Label id="lbllname" runat="server"></asp:Label></td>
<td align="right"><asp:Label id="lblEmail" runat="server"></asp:Label></td>
<td align="right"><asp:Label id="lbladdress" runat="server"></asp:Label></td>
<td align="right"><asp:LinkButton id="lnkDelete" CommandName="Delete" runat="server">Delete</asp:LinkButton></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</asp:Content>
ไฟล์ที่ไม่โชว์ข้อมูลบนมาสเตอร์เพจ
Code (ASP)
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.SqlClient"%>
<%@ Page Language="VB" %>
<script runat="server">
Dim objConn As SqlConnection
Dim objCmd As SqlCommand
Dim strSQL As String
Dim dtReader As SqlDataReader
Sub Page_Load(sender As Object, e As EventArgs)
Dim strConnString As String
strConnString = "Data Source=DELL_BLUE-PC;Initial Catalog=UTCCResearch;Integrated Security=True"
objConn = New SqlConnection(strConnString)
objConn.Open()
IF Not Page.IsPostBack() Then
BindData()
End IF
End Sub
Sub BindData()
strSQL = "SELECT * FROM Member"
objCmd = New SqlCommand(strSQL, objConn)
dtReader = objCmd.ExecuteReader()
'*** BindData to Repeater ***'
myRepeater.DataSource = dtReader
myRepeater.DataBind()
dtReader.Close()
dtReader = Nothing
End Sub
Sub Page_UnLoad()
objConn.Close()
objConn = Nothing
End Sub
Sub myRepeater_ItemCommand(ByVal source As Object, ByVal e As RepeaterCommandEventArgs) Handles myRepeater.ItemCommand
IF e.CommandName = "Delete" Then
'*** Userid ***'
Dim lblUserId As Label = CType(e.Item.FindControl("lblUserid"), Label)
strSQL = "DELETE FROM Member WHERE userid = '" & lblUserid.Text & "' "
objCmd = New SqlCommand(strSQL, objConn)
objCmd.ExecuteNonQuery()
BindData()
End IF
End Sub
Sub myRepeater_ItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) Handles myRepeater.ItemDataBound
'*** UserID ***'
Dim lblUserID As Label = CType(e.Item.FindControl("lblUserID"), Label)
If Not IsNothing(lblUserID) Then
lblUserID.Text = e.Item.DataItem("userID")
End If
'*** Username ***'
Dim lblUsername As Label = CType(e.Item.FindControl("lblUsername"), Label)
If Not IsNothing(lblUsername) Then
lblUsername.Text = e.Item.DataItem("username")
End If
'*** Password ***'
Dim lblPassword As Label = CType(e.Item.FindControl("lblPassword"), Label)
If Not IsNothing(lblPassword) Then
lblPassword.Text = e.Item.DataItem("UserPassword")
End If
'*** Name ***'
Dim lblName As Label = CType(e.Item.FindControl("lblName"), Label)
If Not IsNothing(lblName) Then
lblName.Text = e.Item.DataItem("Name")
End If
'*** LastName ***'
Dim lbllname As Label = CType(e.Item.FindControl("lbllname"), Label)
If Not IsNothing(lbllname) Then
lbllname.Text = e.Item.DataItem("Lastname")
End If
'*** Email ***'
Dim lblEmail As Label = CType(e.Item.FindControl("lblEmail"), Label)
If Not IsNothing(lblEmail) Then
lblEmail.Text = e.Item.DataItem("Email")
End If
'*** Address ***'
Dim lblAddress As Label = CType(e.Item.FindControl("lblAddress"), Label)
If Not IsNothing(lblAddress) Then
lblAddress.Text = e.Item.DataItem("Address")
End If
'*** Delete ***'
Dim lnkDelete As LinkButton = CType(e.Item.FindControl("lnkDelete"), LinkButton)
If Not IsNothing(lnkDelete) Then
lnkDelete.Attributes.Add("OnClick", "return confirm('Delete Record?');")
End If
End Sub
</script>
<html>
<head>
<title>ThaiCreate.Com ASP.NET - SQL Server</title>
<script language="javascript" type="text/javascript">
// <!CDATA[
function Select1_onclick() {
}
// ]]>
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:Repeater id="myRepeater" runat="server">
<HeaderTemplate>
<table border="1">
<tr>
<th>UserId</th>
<th>Username</th>
<th>Password</th>
<th>Name</th>
<th>Lastname</th>
<th>Email</th>
<th>Address</th>
<th>Delete</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td align="center"><asp:Label id="lblUserID" runat="server"></asp:Label></td>
<td align="center"><asp:Label id="lblUsername" runat="server"></asp:Label></td>
<td><asp:Label id="lblPassword" runat="server"></asp:Label></td>
<td><asp:Label id="lblName" runat="server"></asp:Label></td>
<td align="center"><asp:Label id="lbllname" runat="server"></asp:Label></td>
<td align="right"><asp:Label id="lblEmail" runat="server"></asp:Label></td>
<td align="right"><asp:Label id="lbladdress" runat="server"></asp:Label></td>
<td align="right"><asp:LinkButton id="lnkDelete" CommandName="Delete" runat="server">Delete</asp:LinkButton></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</form>
</body>
</html>
ปล. ทำไม เวลาเปิดมารูป header บนมาตเตอร์เพจ หายด้วยครับ
|
 |
 |
 |
 |
Date :
2010-08-31 22:26:08 |
By :
Gooner |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อะจ้ากกกกกก
Code (VB.NET)
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage/MasterPage.master" AutoEventWireup="false" CodeFile="testmaster.aspx.vb" Inherits="testmaster" %>
กำหนดให้ใช้โค้ดใน file code behide ซะด้วย แต่ดันเขียนโค้ดแบบ inline มันคงออกล่ะครับท่าน
ให้เอาส่วนที่อยู่ใน <script runat="server"> ไปใส่ที่ testmaster.aspx.vb นะครับท่าน
วางในภายใน class นะ
ปล. โค้ดใน tutorial น่ะเก่าแล้ว ตั้งแต่ framework รุ่น 1.1 ประมาณ 10 ปีแล้วนะครับ ควรใช้ดูเป็นแนวทางอย่างเดียวพอ
ซึ่ง framework รุ่นนี้ master page ยังไม่เกิดเลยครับ (มันเกิดตอน 2.0)
|
 |
 |
 |
 |
Date :
2010-08-31 22:48:38 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เอาโค้ดดดดดดดดดดดดดมาดู
|
 |
 |
 |
 |
Date :
2010-08-31 23:23:48 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
.vb นะครับ
Code (VB.NET)
Imports System.Data.SqlClient
Imports System.Data
Partial Class testmaster
Inherits System.Web.UI.Page
Dim objConn As SqlConnection
Dim objCmd As SqlCommand
Dim strSQL As String
Dim dtReader As SqlDataReader
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim strConnString As String
strConnString = "Data Source=DELL_BLUE-PC;Initial Catalog=UTCCResearch;Integrated Security=True"
objConn = New SqlConnection(strConnString)
objConn.Open()
If Not Page.IsPostBack() Then
BindData()
End If
End Sub
Sub BindData()
strSQL = "SELECT * FROM Member"
objCmd = New SqlCommand(strSQL, objConn)
dtReader = objCmd.ExecuteReader()
'*** BindData to Repeater ***'
myRepeater.DataSource = dtReader
myRepeater.DataBind()
dtReader.Close()
dtReader = Nothing
End Sub
Sub Page_UnLoad()
objConn.Close()
objConn = Nothing
End Sub
Sub myRepeater_ItemCommand(ByVal source As Object, ByVal e As RepeaterCommandEventArgs) Handles myRepeater.ItemCommand
If e.CommandName = "Delete" Then
'*** Userid ***'
Dim lblUserId As Label = CType(e.Item.FindControl("lblUserid"), Label)
strSQL = "DELETE FROM Member WHERE userid = '" & lblUserid.Text & "' "
objCmd = New SqlCommand(strSQL, objConn)
objCmd.ExecuteNonQuery()
BindData()
End If
End Sub
Sub myRepeater_ItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) Handles myRepeater.ItemDataBound
'*** UserID ***'
Dim lblUserID As Label = CType(e.Item.FindControl("lblUserID"), Label)
If Not IsNothing(lblUserID) Then
lblUserID.Text = e.Item.DataItem("userID")
End If
'*** Username ***'
Dim lblUsername As Label = CType(e.Item.FindControl("lblUsername"), Label)
If Not IsNothing(lblUsername) Then
lblUsername.Text = e.Item.DataItem("username")
End If
'*** Password ***'
Dim lblPassword As Label = CType(e.Item.FindControl("lblPassword"), Label)
If Not IsNothing(lblPassword) Then
lblPassword.Text = e.Item.DataItem("UserPassword")
End If
'*** Name ***'
Dim lblName As Label = CType(e.Item.FindControl("lblName"), Label)
If Not IsNothing(lblName) Then
lblName.Text = e.Item.DataItem("Name")
End If
'*** LastName ***'
Dim lbllname As Label = CType(e.Item.FindControl("lbllname"), Label)
If Not IsNothing(lbllname) Then
lbllname.Text = e.Item.DataItem("Lastname")
End If
'*** Email ***'
Dim lblEmail As Label = CType(e.Item.FindControl("lblEmail"), Label)
If Not IsNothing(lblEmail) Then
lblEmail.Text = e.Item.DataItem("Email")
End If
'*** Address ***'
Dim lblAddress As Label = CType(e.Item.FindControl("lblAddress"), Label)
If Not IsNothing(lblAddress) Then
lblAddress.Text = e.Item.DataItem("Address")
End If
'*** Delete ***'
Dim lnkDelete As LinkButton = CType(e.Item.FindControl("lnkDelete"), LinkButton)
If Not IsNothing(lnkDelete) Then
lnkDelete.Attributes.Add("OnClick", "return confirm('Delete Record?');")
End If
End Sub
End Class
aspx
Code (ASP)
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage/MasterPage.master" AutoEventWireup="false" CodeFile="testmaster.aspx.vb" Inherits="testmaster" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Repeater id="myRepeater" runat="server">
<HeaderTemplate>
<table border="1">
<tr>
<th>UserId</th>
<th>Username</th>
<th>Password</th>
<th>Name</th>
<th>Lastname</th>
<th>Email</th>
<th>Address</th>
<th>Delete</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td align="center"><asp:Label id="lblUserID" runat="server"></asp:Label></td>
<td align="center"><asp:Label id="lblUsername" runat="server"></asp:Label></td>
<td><asp:Label id="lblPassword" runat="server"></asp:Label></td>
<td><asp:Label id="lblName" runat="server"></asp:Label></td>
<td align="center"><asp:Label id="lbllname" runat="server"></asp:Label></td>
<td align="right"><asp:Label id="lblEmail" runat="server"></asp:Label></td>
<td align="right"><asp:Label id="lbladdress" runat="server"></asp:Label></td>
<td align="right"><asp:LinkButton id="lnkDelete" CommandName="Delete" runat="server">Delete</asp:LinkButton></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</asp:Content>
|
 |
 |
 |
 |
Date :
2010-09-01 11:10:40 |
By :
Gooner |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
repeater ขาด footer ไปนะ
Code (C#)
<FooterTemplate>
</table>
</FooterTemplate>
|
 |
 |
 |
 |
Date :
2010-09-01 12:31:06 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
งั้นเอาดัก error ออกให้มันโชว์ error ออกมา
Code (VB.NET)
Sub myRepeater_ItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) Handles myRepeater.ItemDataBound
'*** UserID ***'
Dim lblUserID As Label = CType(e.Item.FindControl("lblUserID"), Label)
'If Not IsNothing(lblUserID) Then
lblUserID.Text = e.Item.DataItem("userID")
'End If
'*** Username ***'
Dim lblUsername As Label = CType(e.Item.FindControl("lblUsername"), Label)
'If Not IsNothing(lblUsername) Then
lblUsername.Text = e.Item.DataItem("username")
'End If
'*** Password ***'
Dim lblPassword As Label = CType(e.Item.FindControl("lblPassword"), Label)
'If Not IsNothing(lblPassword) Then
lblPassword.Text = e.Item.DataItem("UserPassword")
'End If
'*** Name ***'
Dim lblName As Label = CType(e.Item.FindControl("lblName"), Label)
'If Not IsNothing(lblName) Then
lblName.Text = e.Item.DataItem("Name")
'End If
'*** LastName ***'
Dim lbllname As Label = CType(e.Item.FindControl("lbllname"), Label)
'If Not IsNothing(lbllname) Then
lbllname.Text = e.Item.DataItem("Lastname")
'End If
'*** Email ***'
Dim lblEmail As Label = CType(e.Item.FindControl("lblEmail"), Label)
'If Not IsNothing(lblEmail) Then
lblEmail.Text = e.Item.DataItem("Email")
'End If
'*** Address ***'
Dim lblAddress As Label = CType(e.Item.FindControl("lblAddress"), Label)
'If Not IsNothing(lblAddress) Then
lblAddress.Text = e.Item.DataItem("Address")
'End If
'*** Delete ***'
Dim lnkDelete As LinkButton = CType(e.Item.FindControl("lnkDelete"), LinkButton)
'If Not IsNothing(lnkDelete) Then
lnkDelete.Attributes.Add("OnClick", "return confirm('Delete Record?');")
'End If
End Sub
End Class
|
 |
 |
 |
 |
Date :
2010-09-01 13:57:36 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แล้วถ้าผมใช้ DataGid แบบให้มันโชว์ ฐ านข้อมูลขึ้นมา
ไม่ทำแบบฐานข้อมูล อันเดิมอ่ะครับ
จะให้มัน สามารถ แก้ไข ใน DataGid เพิ่ม ลบ ได้ไหมครับ ต้องทำยังไง
|
 |
 |
 |
 |
Date :
2010-09-01 14:16:25 |
By :
Gooner |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เอา master page มาดู
|
 |
 |
 |
 |
Date :
2010-09-01 15:47:03 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (ASP)
<%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="MasterPage" %>
<%@ Register TagPrefix="UserControls" TagName="LoginControl" Src="~/Login/LoginUserControl.ascx" %>
<!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>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<link type="text/css" href="../img/menu-teal/menu.css" rel="stylesheet" />
<script type="text/javascript" src="../img/menu-teal/jquery.js"></script>
<script type="text/javascript" src="../img/menu-teal/menu.js"></script>
<style type="text/css">
<--
.style1
{
width: 900px;
}
* { margin:0;
padding:0;
}
.style2
{
width: 100%;
}
.style3
{
width: 464px;
}
.style4
{
height: auto;
width: 906px;
}
.style5
{
width: 906px;
}
.style6
{
width: 906px;
height: 415px;
}
.style7
{
width: 676px;
height: 22px;
}
.style8
{
height: 22px;
}
.style9
{
width: 906px;
height: 21px;
}
-->
</style>
</head>
<body bgcolor="#F90">
<form id="form1" runat="server" >
<div>
<table class="style1" align="center"
style="border-style: solid; border-color: #66FFFF" bgcolor="white">
<tr>
<td class="style5">
<img alt="" src="../img/Header.jpg" style="width: 916px; height: 352px" /></td>
</tr>
<tr>
<td class="style4" valign="top" align="center">
<table class="style2">
<tr>
<td class="style7">
<div id="menu" align="left">
<ul class="menu">
<li><a href="/UTCCResearch/Home/Home.aspx" class="parent"><span>Home</span></a>
</li>
<li><a href="/UTCCResearch/main/Default.aspx"><span>BI</span></a>
<div><ul>
<li><a href="/UTCCResearch/main/main1.aspx" class="parent"><span>BI_1</span></a>
<div><ul>
<li><a href="#"><span>Sub Item 1.1</span></a></li>
<li><a href="#"><span>Sub Item 1.2</span></a></li>
</ul></div>
</li>
<li><a href="/UTCCResearch/main/main2.aspx" class="parent"><span>BI_2</span></a>
<div><ul>
<li><a href="#"><span>Sub Item 2.1</span></a></li>
<li><a href="#"><span>Sub Item 2.2</span></a></li>
</ul></div>
</li>
</ul></div>
</li>
<% If (Session("userid") Is Nothing) Then%>
<li><a href="/UTCCResearch/Register/Register.aspx"><span>Register</span></a></li>
<% End If%>
<li><a href="/UTCCResearch/About/Default.aspx"><span>About</span></a>
<div><ul>
<li><a href="/UTCCResearch/About/AboutUs.aspx" class="parent"><span>AboutUs</span></a>
</li>
<li><a href="/UTCCResearch/About/Contact.aspx" class="parent"><span>Contact</span></a>
</li>
</ul></div>
</li>
<% If (Session("Type") = "Admin") Then%>
<li><a href="/UTCCResearch/testeditadmin.aspx"><span>AdminControl</span></a></li>
<% End If%>
</ul>
</div>
</td>
<td align="center" valign="middle" class="style8"
style="border-style: dashed; background-color: #C0C0C0;">
<usercontrols:logincontrol ID="LoginControl" runat="server">
</usercontrols:logincontrol>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="style5">
<table class="style2">
<tr>
<td class="style3" >
<asp:SiteMapPath ID="SiteMapPath1" runat="server" Font-Names="Verdana"
Font-Size="0.8em" PathSeparator=" : ">
<PathSeparatorStyle Font-Bold="True" ForeColor="#5D7B9D" />
<CurrentNodeStyle ForeColor="#333333" />
<NodeStyle Font-Bold="True" ForeColor="#7C6F57" />
<RootNodeStyle Font-Bold="True" ForeColor="#5D7B9D" />
</asp:SiteMapPath>
</td>
<td align=right>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="style6" valign="top">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</td>
</tr>
<tr>
<td class="style9" align="center">
<div style="background-image: url('../img/menu/bg.gif')">
Copyright © 2009 UTCC Research Center</div>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
นี้ครับ หน้า อื่นแสดงได้ปกตินะครับ ยกเว้นหน้า ของโชว์ฐานข้อมูล
|
 |
 |
 |
 |
Date :
2010-09-01 22:10:54 |
By :
Gooner |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมไม่รู้ tutorial มันผิดหรือมันตกรุ่นนะ แต่ถ้าจะใช้จริงและถูกต้องตามหน้าที่ให้ใช้ gridview ดีกว่า
เพราะมันเป็น control ที่ใช้สร้างตารางข้อมูลโดยตรงอยู่แล้ว
Code (VB.NET)
Sub myRepeater_ItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) Handles myRepeater.ItemDataBound
Dim Drv As DataRowView = DirectCast(e.Item.DataItem, DataRowView)
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
'*** UserID ***'
Dim lblUserID As Label = DirectCast(e.Item.FindControl("lblUserID"), Label)
If Not IsNothing(lblUserID) Then
lblUserID.Text = Drv("userID").ToString()
End If
'*** Username ***'
Dim lblUsername As Label = DirectCast(e.Item.FindControl("lblUsername"), Label)
If Not IsNothing(lblUsername) Then
lblUsername.Text = Drv("username").ToString()
End If
'*** Password ***'
Dim lblPassword As Label = DirectCast(e.Item.FindControl("lblPassword"), Label)
If Not IsNothing(lblPassword) Then
lblPassword.Text = Drv("UserPassword").ToString()
End If
'*** Name ***'
Dim lblName As Label = DirectCast(e.Item.FindControl("lblName"), Label)
If Not IsNothing(lblName) Then
lblName.Text = Drv("Name").ToString()
End If
'*** LastName ***'
Dim lbllname As Label = DirectCast(e.Item.FindControl("lbllname"), Label)
If Not IsNothing(lbllname) Then
lbllname.Text = Drv("Lastname").ToString()
End If
'*** Email ***'
Dim lblEmail As Label = DirectCast(e.Item.FindControl("lblEmail"), Label)
If Not IsNothing(lblEmail) Then
lblEmail.Text = Drv("Email").ToString()
End If
'*** Address ***'
Dim lblAddress As Label = DirectCast(e.Item.FindControl("lblAddress"), Label)
If Not IsNothing(lblAddress) Then
lblAddress.Text = Drv("Address").ToString()
End If
'*** Delete ***'
Dim lnkDelete As LinkButton = DirectCast(e.Item.FindControl("lnkDelete"), LinkButton)
If Not IsNothing(lnkDelete) Then
lnkDelete.Attributes.Add("OnClick", "return confirm('Delete Record?');")
End If
End If
End Sub
|
 |
 |
 |
 |
Date :
2010-09-02 09:07:16 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|