ASP.NET w/AJAX を使用して、次のようなサイトを構築しています。
http://sanjosepizzaexpress.com/order-online/
食品メニューまで下にスクロールし、中央の列の食品項目をクリックすると、項目が下に展開され、ユーザーが注文のためにメニュー項目の詳細を提供できることがわかります。ページのリロードはありません。
C#でJavaccriptを使用してAJAXとASP.NETを使用してこの効果を得ようとしています。いくつか問題があります。
ページを完全にリロードせずに、個々の食品メニュー項目を展開し、データベースから項目の詳細データを表示したいと考えています。私の試み (以下のコード) では、ページ全体が常に再読み込みされ、個々の項目を選択するたびにすべてのメニュー項目が展開されます。
私のフード メニューは、単一列のデータ バインドされた asp:datagird で構成されています。各 datagird アイテムはユーザー コントロール (OM:MnuItem) です。
<asp:datagrid Runat="server">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<OM:MenuItem ID="MenuItem1" ... runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
MenuItem.ascx には 2 つの div があります。1 つの div (menuItemDisplay) には、MenuItem の名前などがあります。最初は、フード メニュー データグリッドに表示されます。ユーザーがメニューの menuItemDisplay div をクリックすると、JavaScript の DisplayItem 関数によって 2 番目の div (itemDetails) が表示されます。MenuItem.ascx には UpdatePanel と ContentTemplate が含まれています。
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Always" ChildrenAsTriggers="true" runat="server">
<ContentTemplate>
<div id="menuItemDisplay" onclick="DisplayDetails();">
<table >
<tr>
<td align="left" style="width:90%;">
<table >
<tr>
<td >
<asp:Label ID="nameLbl" runat="server" />
</td>
... etc ...
</tr>
</table>
<div id="itemDetails" style="visibility:hidden;" runat="server">
... item details ...
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
Javascript DisplayDetails 関数:
function DisplayDetails()
{
__doPostBack("DisplayDetails", "");
}
MenuItem.ascx.cs Page_Load:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
if (Request.Form["__EVENTTARGET"] == "DisplayDetails")
{
itemDetails.Style.Value = "visibility:visible";
}
}
}
MenuItem.ascx.cs Page_Load:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
if (Request.Form["__EVENTTARGET"] == "DisplayDetails")
{
itemDetails.Style.Value = "visibility:visible";
}
}
}
ScriptManager は default.aspx にあります。
<asp:ScriptManager EnablePartialRendering="true"
ID="ScriptManager1" runat="server"></asp:ScriptManager>
繰り返しますが、私の問題: ページ全体が常に再読み込みされ、個々の項目を選択するたびにすべてのメニュー項目が展開されます。
誰か考えがありますか?とのバンドをありがとう。