2011-06-10 5 views
0

이것은이 포럼의 첫 번째 게시물입니다. 링크에서 메시지 ID를 가져 와서 다른 페이지로 리디렉션하여 메시지를 보는 방법을 호출하는 하이퍼 링크가있는 레코드 세트의 데이터를 기반으로 테이블을 작성하려고합니다. HTMLAnchors, LinkButtons 시도했지만 아무도 작동하는 것. 어떤 도움이라도 대단히 감사하겠습니다. 이 같은하이퍼 링크가있는 동적 테이블

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Dim iUserID As Integer 
    Dim sMsgId, sMsgSubject, sMsgDateSent, sMsgRead, sMsgFrom, sFirstname As String 
    iUserID = Session("UserID") 
    Dim cn As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("ApplicationServices").ConnectionString) 
    Dim cmd As New SqlCommand() 
    Dim tblRow As TableRow 
    Dim tblCell1 As TableCell 
    Dim tblCell2 As TableCell 
    Dim tblCell3 As TableCell 
    Dim tblCell4 As TableCell 

    tblRow = New TableRow 

    tblCell1 = New TableCell 
    tblCell1.Text = "" 
    tblRow.Cells.Add(tblCell1) 

    tblCell2 = New TableCell 
    tblCell2.Text = "From" 
    tblRow.Cells.Add(tblCell2) 

    tblCell3 = New TableCell 
    tblCell3.Text = "Subject" 
    tblRow.Cells.Add(tblCell3) 

    tblCell4 = New TableCell 
    tblCell4.Text = "Received" 
    tblRow.Cells.Add(tblCell4) 

    tblMessages.Rows.Add(tblRow) 

    tblCell1 = Nothing 
    tblCell2 = Nothing 
    tblCell3 = Nothing 
    tblRow = Nothing 

    cmd.CommandText = "SELECT msg.msg_id, msg.msg_usr_from, usr.usr_firstname, msg.msg_subject, msg.msg_date_sent, msg.msg_read FROM messages msg inner join users usr on msg.msg_usr_to = usr.usr_id WHERE msg.msg_usr_to='" & iUserID & "'" 
    cmd.Connection = cn 
    cn.Open() 
    Dim r As SqlDataReader = cmd.ExecuteReader 
    Dim objControl As Button 


    While r.Read() 
     tblCell1 = New TableCell 
     tblCell2 = New TableCell 
     tblCell3 = New TableCell 
     tblCell4 = New TableCell 
     tblRow = New TableRow 
     sMsgId = CStr(r("msg_id")) 
     sMsgFrom = CStr(r("msg_usr_from")) 
     sFirstname = CStr(r("usr_firstname")) 
     sMsgSubject = CStr(r("msg_subject")) 
     sMsgDateSent = CStr(r("msg_date_sent")) 
     sMsgRead = CStr(r("msg_read")) 

     If sMsgRead = "N" Then 
      tblCell1.Text = "<img width=30px src=images/new_email.png>" 
     Else 
      tblCell1.Text = "<img width=30px src=images/email_open.png>" 
     End If 

     Dim objLinkbutton As 

     tblRow.Cells.Add(tblCell1) 
     tblCell2.Text = sFirstname 
     tblRow.Cells.Add(tblCell2) 
     tblCell3.controls.add(  HYPERLINK HERE!!! 
     tblRow.Cells.Add(tblCell3) 
     tblCell4.Text = FormatDateTime(sMsgDateSent, DateFormat.LongDate) 
     tblRow.Cells.Add(tblCell4) 
     If sMsgRead = "N" Then 
      tblCell2.Font.Bold = True 
      tblCell3.Font.Bold = True 
      tblCell4.Font.Bold = True 
     End If 
     tblMessages.Rows.Add(tblRow) 
     tblCell1 = Nothing 
     tblCell2 = Nothing 
     tblCell3 = Nothing 
     tblCell4 = Nothing 
     tblRow = Nothing 
    End While 

    r.Close() 
    cn.Close() 
    cn = Nothing 
    r = Nothing 
    cmd = Nothing 
End Sub 

Protected Sub viewmessage(messageid As String) 
    Context.Items("messageid") = "messageid" 
    Server.Transfer("viewmessage.aspx") 
End Sub 
End Class 
+0

당신은 정말로 열심히 직접 노력하는 대신 Gridview 나 Repeater 같은 ASP.NET 것들을 조사해야합니다. – Pleun

+0

내 게시물을 업데이트했습니다! – danyolgiax

답변

0

시도 뭔가 :

Dim a As New HyperLink() 
a.Text = "your text" 
a.NavigateUrl = "yourPage.aspx?idMsg=" + r["msg_id"] 

tblCell3.controls.add(a) 
0

내가보기로 당신은 두 가지 선택이있다.

  1. 마사지 데이터는 ID와 전체 URI를 포함하고 있으므로 설정 한 다음 그리드
  2. 사용에
  3. 계속 손을 결합 행을 통해 그리드를 바인딩 다음 URI를 생성하는 루틴을 결합 하이퍼 링크 컨트롤을 사용하여 테이블 바인딩하기

# 3 옵션은 "ASP.NET"과 같이 가장 쉬운 방법입니다. 나는 테이블을 손으로 만드는 것을 좋아하지 않는다. 컨트롤을 사용할 때, 단순히 a) 바인드 전에 데이터를 변경하거나 b) 행 바인딩 이벤트에서 멈추고 정보를 추가하는 것.

0

쿼리 문자열을 사용하여 선택한 링크의 id 값을 저장하고 원하는 페이지로 리디렉션합니다.

관련 문제