我有一個DataList,它們被加載到搜索結果(url,description,title)中。我需要知道用戶點擊搜索結果的URL。我使用linkbutton來做到這一點。但是,如果我在LinkButton控件中使用PostBackUrl屬性,OnClick處理程序無法調用。如何獲得linkbutton的url
//Default.aspx
<asp:Panel ID="panResults" runat="server" Height="236px">
<p style="text-align: left" align="left"><asp:Label runat="server" ID="lblTotal" Font-Bold="true" /></p>
<asp:DataList ID="dlstResults" runat="server" CellPadding="4"
ForeColor="#333333" Width="100%" OnItemDataBound="DataList_ItemDataBound" >
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<SelectedItemStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<AlternatingItemStyle BackColor="White" ForeColor="#284775" />
<ItemStyle BackColor="#F7F6F3" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<ItemTemplate>
<asp:LinkButton ID="lnkResultUrl" runat="server" OnClick="Link_Click" CommandArgument='<%# Eval("Url") %>'
PostBackUrl='<%# Eval("Url") %>' Text='<%# Eval("Title") %>' />
<br />
<asp:Label ID="lblResultUrl" runat="server" Font-Bold="true"
Text='<%# Eval("Url") %>' />
<br />
<asp:Label ID="lblResultSummay" runat="server"
Text='<%# Eval("Description") %>' />
</ItemTemplate>
</asp:DataList>
</asp:Panel>
//Code-behind
protected void Link_Click(object sender, EventArgs e)
{
LinkButton btn = (LinkButton)(sender);
string myValue = btn.CommandArgument;
}
鏈接按鈕支持命令參數和命令名稱屬性 –
@Steve,這是什麼意思?在我的例子中,我使用CommandArgument。但是這不起作用,如果我放入PostBackUrl。 –
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.datalist.itemcommand(v=vs.80).aspx處理這個事件,爲每個在命令參數中拋出url屬性(你正在做的),給它一個命令名,以便你知道哪個控件從事件處理程序中。 –