ASP.NET 徹底活用術(Part2)のホームへ戻る

■新規スレッド入力

 

新規スレッドを投稿するには、DisplayPosts.aspxから[新規スレッド登録]のリンクをクリックします。リンクをクリックすると、AddPosts.aspxがロードされます。AddPosts.aspxには、「メール」、「パスワード」、「タイトル」、「メッセージ」を入力するTextBoxが配置されています(15)。なお、スレッドの「メッセージ」には、TextBoxの代わりにFreeTextBoxを配置しています。FreeTextBoxを使用すると、メッセージをHTML形式で入力することができます。

 

FreeTextBoxを利用するには、ソリューションエクスプローラのbinフォルダに「FreetextBox.dll」をコピーします。さらに、@Pageディレクティブの直後に以下の@Registerディレクティブを追加します。FreeTextBoxのインストール手順については、3月号のPart3に詳しく掲載していますので、そちらを参照してください。

 

<%@ Register TagPrefix="FTB" Namespace="FreeTextBoxControls" Assembly="FreeTextBox" %>

 

<table width="650">

<tr>

  <td valign="top">

    <font face="HG創英角ゴシックUB" size="2">メール</font>

  </td>

  <td>

    <asp:TextBox id="txtEmail" runat="server"

      Width="20em" Columns="25">

    </asp:TextBox>

  </td>

</tr>

・・・

<tr>

  <td valign="top">

    <font face="HG創英角ゴシックUB" size="2">メッセージ</font>

  </td>

  <td>

    <FTB:FreeTextBox id="ftbMessage" runat="Server"

      Width="555px" Height="150px" Language="ja-JP"

      ToolbarStyleConfiguration="Office2003" />

  </td>

</tr>

・・・

</table>

 

AddPosts.aspxから[投稿]ボタンをクリックすると、tblPostsテーブルにスレッドのヘッダー情報を追加します。tblThreadsテーブルには、スレッドの明細情報を追加します。スレッドのヘッダー/明細を追加したら、DisplayPosts.aspxをロードして新規登録したスレッドを表示します(リスト7)。

 

リスト7 [投稿]ボタンのクリック時のイベントハンドラ (AddPosts.aspx.vb)

Private Sub btnPost_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPost.Click

  Dim strEmail As String = txtEmail.Text

  Dim strPassword As String = txtPassword.Text

  Dim strDbPassword As String = String.Empty

 

  ' tblPostsテーブルに新規レコード追加

  Dim intUserID As Integer = GetUserIDByEmail(strEmail)

  Dim strSubject As String = txtSubject.Text

  Dim dtmPostDate As DateTime = DateTime.Now.AddHours(mintTimeZoneOffset)

  Dim intPostID As Integer = AddPostRec(mintFaqID, intUserID, strSubject, dtmPostDate)

 

  ' tblThreadsテーブルに新規レコード追加

  Dim strBody As String = ftbMessage.Text

  Dim dtmThreadDate As DateTime = DateTime.Now.AddHours(mintTimeZoneOffset)

  Dim intThreadID As Integer = AddThreadRec(intPostID, intUserID, strSubject, strBody, dtmThreadDate)

 

  ・・・

  Dim strUrl As String = String.Format("DisplayPosts.aspx?faqid={0}", mintFaqID)

  Response.Redirect(strUrl)

End Sub

 

 

15 新規スレッドを投稿するフォーム (AddPosts.aspx)

 

 

ASP.NET 徹底活用術(Part2)のホームへ戻る