我試圖做一些似乎相當簡單的事情。我有一個用戶控制幾個LinkButtons
。每個LinkButton
有OnCommand
,CommandName
和CommandArgument
集,像這樣:LinkButton OnCommand或OnClick沒有觸發
<ul id="continents">
<li id="northamerica"><asp:LinkButton ID="lbNorthAmerica" OnCommand="ChooseRegion" CommandName="SetCookie" CommandArgument="North America" runat="server">North America</asp:LinkButton></li>
<li id="southamerica"><asp:LinkButton ID="lbSouthAmerica" OnCommand="ChooseRegion" CommandName="SetCookie" CommandArgument="South America" runat="server">South America</asp:LinkButton></li>
<li id="asia"><asp:LinkButton ID="lbAsia" OnCommand="ChooseRegion" CommandName="SetCookie" CommandArgument="Asia" runat="server">Asia</asp:LinkButton></li>
<li id="australia"><asp:LinkButton ID="Australia" OnCommand="ChooseRegion" CommandName="SetCookie" CommandArgument="Australia" runat="server">Australia</asp:LinkButton></li>
<li id="africa"><asp:LinkButton ID="lbAfrica" OnCommand="ChooseRegion" CommandName="SetCookie" CommandArgument="Africa" runat="server">Africa</asp:LinkButton></li>
<li id="europe"><asp:LinkButton ID="lbEurope" OnCommand="ChooseRegion" CommandName="SetCookie" CommandArgument="Europe" runat="server">Europe</asp:LinkButton></li>
</ul>
對於它的價值,用戶控件有AutoEventWireup="true"
。
在代碼隱藏,我有這樣的:
protected void ChooseRegion(object sender, CommandEventArgs e)
{
Response.Cookies["region"].Value = e.CommandArgument.ToString();
Response.Cookies["region"].Expires = DateTime.Now.AddDays(90);
SendToRegion(e.CommandArgument.ToString());
}
在我的生產環境(Windows Server 2008中),ChooseRegion()
是沒有得到,當我點擊鏈接按鈕調用,因此沒有cookie被設定。我不知道爲什麼。我試過在OnInit
中手動配置命令處理程序,並嘗試使用OnClick
而不是OnCommand
。我試着在LinkButtons
上設置EnableViewState="true"
。到目前爲止,我嘗試過的任何工作都沒有成功
但是,這在我的開發機器(Windows 7)上正常工作。
在這一點上,我感到相當肯定,這兩種環境之間可能存在一些配置差異,但我真的不確定從哪裏開始尋找。想法?
編輯 - 2011-10-26:
行 - 我發現我有這個問題,其他地方也是如此。具有上述代碼的網站和我遇到問題的其他網站都是共享相同Sitecore實例的Sitecore解決方案。
在另一個網站上,有一個電子郵件地址和一個帶有OnClick事件的相關ImageButton的文本框。這些都包含在網站的每個頁面上。在主頁上,OnClick處理程序從不觸發。在任何其他頁面上,OnClick處理程序都會觸發。
上面我的帖子原始部分的代碼也在網站的主頁上。如果我將它移動到任何其他頁面,它會按預期工作。另外,就像我的文章的原始部分中的代碼,它在我的開發機器(Windows 7)上可以正常工作,但在生產計算機(Windows 2008 Server)上卻不能正常工作。所以,似乎這似乎與在主頁上有關,也許Sitecore以某種方式參與了該問題。我仍然在撓我的腦海,雖然...
你發佈了所有有問題的代碼還是你減少了它?如果減少,你確定這個代碼仍然重現了這個問題嗎?請嘗試FireBug>控制檯窗口以查看是否正在生成GET/POST請求。 –
這實質上就是我所擁有的代碼。 ChooseRegion()與我的代碼完全相同,並且HTML/ASP.NET前端代碼沒有太多其他內容。我做了檢查,並且看到POST請求,正如我所期望的那樣。 –