jQuery FaceBox を使用して、テキスト ボックス、ドロップダウン リスト、およびボタンを表示しています。ユーザーはテキストボックスにテキストを書き、ddl で値を選択してボタンを押すことができます。これにより、コードビハインドでいくつかのコードが起動されます。FaceBox は問題なく表示され、その中のコンテンツも問題ありません。また、ボタン イベントが発生します。ボタン イベント ハンドラのコードは次のとおりです。
protected void Button1_Click(object sender, EventArgs e)
{
_favorit = new Favoritter();
ListItem fav = ddl_favoritter.SelectedItem;
_favorit.FavoritterFolderID = int.Parse(fav.Value);
//_favorit.FavoritterFolderID = Convert.ToInt32(ddl_favoritter.SelectedItem);
_favorit.FavoritterNavn = txt_favoritNavn.Text;
_favorit.FavoritterUserID = UserID;
_favorit.FavoritterUrl = HttpContext.Current.Request.Url.ToString();
FavoritterManager.InsertFavoritter(_favorit);
}
ビジネス オブジェクトが作成され、そのプロパティがコントロールから読み取られた値で設定されます。次に、オブジェクトがデータベースに挿入されますが、これは問題なく機能します。問題は、テキスト ボックスとドロップダウンの値が正しく設定されていないことです。テキストボックスの値は空で、テキストボックスに書き込み、ボタンを押す前に別の ddlitem を選択しても、選択した ddl の値は常に 1 です。ddl は次のようにロードされます。
if (!Page.IsPostBack)
{
_favoritter = FavoritterFolderManager.GetFavoritterFolderByUser(UserID);
ddl_favoritter.DataSource = _favoritter;
ddl_favoritter.DataBind();
}
このコードを if (!Page.IsPostBack) の外に置いてみましたが、objectdatasource を使用して入力しても同じ問題が発生しました。ボタンを押すと、コントロールが「リセット」されるようです。コントロールを含む div を表示するだけなので、FaceBox とは何の関係もないと思います。 ... 何か案は?
これは、aspx ページのコードです。
<div id="showme" style="display:none;">
Add to favourites.<br />
<br />
<p>
Title: <span><asp:TextBox ID="txt_favoritNavn" runat="server"></asp:TextBox></span></p>
<p>
select folder: <span><asp:DropDownList ID="ddl_favoritter" runat="server" DataTextField="FavoritterFolderNavn"
DataValueField="FavoritterFolderID" AppendDataBoundItems="true">
</asp:DropDownList>
</span>
</p>
<br />
<asp:Button ID="Button1" runat="server" Text="Gem" onclick="Button1_Click"/>
</div>