我使用jQuery FaceBox來顯示一個文本框,一個下拉列表和一個按鈕。用戶可以在文本框中寫入文本,在ddl中選擇一個值,然後按下按鈕。這觸發了代碼隱藏中的一些代碼。 FaceBox顯示正常,並且其中的內容也可以。此外,按鈕事件被觸發。這是按鈕事件處理程序的代碼:jQuery 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);
}
創建業務對象,並使用從控件讀取的值設置其屬性。然後將該對象插入數據庫,該數據庫運行良好。問題在於文本框和下拉列表值設置不正確。文本框的值是空的,即使我在文本框中寫入,ddl選擇的值是allways 1,並且在我點擊按鈕之前選擇另一個ddlitem。該DDL加載這樣的:
if (!Page.IsPostBack)
{
_favoritter = FavoritterFolderManager.GetFavoritterFolderByUser(UserID);
ddl_favoritter.DataSource = _favoritter;
ddl_favoritter.DataBind();
}
我試圖把這個代碼,如果(Page.IsPostBack!)之外,還使用一個ObjectDataSource,還是同樣的問題加油吧。這就像控制按鈕被「重置」一樣,我認爲它與FaceBox沒有任何關係,因爲它只是顯示包含控件的div ......然後,它可能會再次... 有任何想法嗎?
這是aspx頁面代碼:(!的IsPostBack)
<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>
很高興您發現了一些可行的工具......不要忘記將您的答案標記爲已接受的答案,以便將來的用戶發現此問題知道該去哪裏。 – 2010-01-21 02:15:11
是的,我試圖接受它,但我得到了一個對話,說我可以在5個小時內接受我自己的答案,這並不適合我的時間表。我會再試一次 - 在5小時內--D – Soeren 2010-01-21 08:20:48