Tbl_messageテーブルからTitleとRespondBYを取得するクエリを実行しています。リピーターにデータバインディングを行う前に、Titleを復号化します。データバインドを行う前にタイトル値にアクセスするにはどうすればよいですか。
string MysqlStatement = "SELECT Title, RespondBy FROM tbl_message WHERE tbl_message.MsgID = @MsgID";
using (DataServer server = new DataServer())
{
MySqlParameter[] param = new MySqlParameter[1];
param[0] = new MySqlParameter("@MsgID", MySqlDbType.Int32);
param[0].Value = MessageID;
command.Parameters.AddWithValue("@MsgID", MessageID);
ds = server.ExecuteQuery(CommandType.Text, MysqlStatement, param);
}
rptList.DataSource = ds;
rptList.DataBind();
<table style="width: 498px; color: #F5F5F5;">
<asp:Repeater ID="rptList" runat="server">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td width="15%">
<b>Subject</b>
</td>
<td width="60%">
<asp:Label ID="lbl_Subj" runat="server" Text='<%#Eval("Title")%>' />
</td>
</tr>
おそらく、次のコード部分のように、タイトルを取得してこのコーディングを試すことができます
rptList.DataSource = ds;
rptList.DataBind();
次のコード部分は dataset からタイトルを取得できます
string title = ds.Tables[0].Rows[0]["Title"].ToString();
文字列のタイトル= ds.Tables [0] .Rows [0] [0] .ToString();
タイトル名の代わりにインデックスを使用しました。個人の好み。
復号化の意味がわかりませんが、ロジックを適用してタイトルを変更する場合は、テキストをTitleにバインドする代わりに、Titleを入力として受け取り、復号化されたテキストを返すメソッドを作成できます。ラベルをこのメソッドにバインドして、タイトルを渡すことができます。