我有一箇中繼器,並且每個項目都包含一個按鈕,應該重定向到另一頁,並且還通過在查詢字符串的值。ASP.NET直放站:巴頓在項模板重定向到另一個頁面
我沒有收到任何錯誤,但是當我點擊按鈕時,頁面只是刷新(所以我假設postback
發生)並且不重定向。我認爲出於某種原因,它不認可按鈕的CommandName
。
直放站代碼:
<asp:Repeater ID="MySponsoredChildrenList" runat="server" OnItemDataBound="MySponsoredChildrenList_ItemDataBound" OnItemCommand="MySponsoredChildrenList_ItemCommand">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<br />
<div id="OuterDiv">
<div id="InnerLeft">
<asp:Image ID="ProfilePic" runat="server" ImageUrl='<%#"~/Resources/Children Images/" + String.Format("{0}", Eval("Primary_Image")) %>'
Width='300px' Style="max-height: 500px" /></div>
<div id="InnerRight">
<asp:HiddenField ID="ChildID" runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "Child_ID") %>'/>
<span style="font-size: 20px; font-weight:bold;"><%# DataBinder.Eval(Container.DataItem, "Name") %>
<%# DataBinder.Eval(Container.DataItem, "Surname") %></span>
<br /><br /><br />
What have you been up to?
<br /><br />
<span style="font-style:italic">"<%# DataBinder.Eval(Container.DataItem, "MostRecentUpdate")%>"</span>
<span style="font-weight:bold"> -<%# DataBinder.Eval(Container.DataItem, "Update_Date", "{0:dd/MM/yyyy}")%></span><br /><br /><br />Sponsored till:
<%# DataBinder.Eval(Container.DataItem, "End_Date", "{0:dd/MM/yyyy}")%>
<br /><br />
<asp:Button ID="ChildProfileButton" runat="server" Text="View Profile" CommandName="ViewProfile" />
</div>
</div>
<br />
</ItemTemplate>
<SeparatorTemplate>
<div id="SeparatorDiv">
</div>
</SeparatorTemplate>
</asp:Repeater>
C#代碼隱藏:
protected void MySponsoredChildrenList_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
// Stuff to databind
Button myButton = (Button)e.Item.FindControl("ChildProfileButton");
myButton.CommandName = "ViewProfile"; }
}
protected void MySponsoredChildrenList_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "ViewProfile")
{
int ChildIDQuery = Convert.ToInt32(e.Item.FindControl("ChildID"));
Response.Redirect("~/ChildDescription.aspx?ID=" + ChildIDQuery);
}
}
我是新來使用中繼所以它可能只是一個新手的錯誤。在旁註:有沒有更好的方式獲得ChildID而不使用隱藏字段?
編輯:使用斷點; ItemDataBound事件處理程序被擊中,但在所有
您是否在事件處理程序的開始處放置了斷點?它受到打擊嗎? 「e.CommandName」評估的是什麼? – Oded 2012-03-08 10:08:09
單擊時是否出現任何錯誤。 – joshua 2012-03-08 10:09:28
剛剛嘗試過,事件處理程序似乎沒有被調用。當我加載頁面時,將onClick屬性添加到任一事件的按鈕都會導致錯誤。 @Black_Crown:單擊時沒有錯誤,頁面似乎回發並刷新 – Matt 2012-03-08 10:12:55