我正在尝试使用列表视图来动态显示数据库中的数据。我希望在单击该数据时,应该通过获取所选数据的 ID 来运行背景编码,然后它应该导航到另一个页面。
问问题
88 次
2 回答
1
对我有用的答案
<asp:ListView ID="ListView1" runat="server" DataKeyNames="ID"
onselectedindexchanging="ListView1_SelectedIndexChanging">
<LayoutTemplate>
<ul>
<asp:PlaceHolder ID="itemPlaceholder" runat="server" />
</ul>
</LayoutTemplate>
<ItemTemplate>
<li>
<%#Eval("Subject") %>
<asp:LinkButton ID="lnkSelect" Text="Read More" CommandName="Select" runat="server" />
</li>
</ItemTemplate>
<SelectedItemTemplate>
<asp:LinkButton ID="lnkSelect" Text="Read More" CommandName="Select" runat="server"
ForeColor="White" />
<%#Eval("Subject") %>
</SelectedItemTemplate>
</asp:ListView>
.CS 文件
protected void ListView1_SelectedIndexChanging(object sender, ListViewSelectEventArgs e)
{
ListView1.SelectedIndex = e.NewSelectedIndex;
string pid = ListView1.SelectedDataKey.Value.ToString();
Session["id"] = pid;
Response.Redirect("About.aspx");
}
于 2013-01-12T06:44:53.320 回答
0
在 aspx 中使用 ListViewCommandArgument
属性, OnItemCommand
在后面的代码中使用 ListView 像这样
OnItemCommand
简而言之,您可以像这样获得 ID并导航到另一个页面:
string employeeID = EmployeesListView.DataKeys[dataItem.DisplayIndex].Value.ToString();
Response.redirect("~/index.aspx?employeeID="+employeeID);
页面源 (aspx)
<asp:ListView runat="server"
ID="EmployeesListView"
OnItemCommand="EmployeesListView_OnItemCommand"
DataSourceID="EmployeesDataSource"
DataKeyNames="EmployeeID">
<LayoutTemplate>
<table runat="server" id="tblEmployees"
cellspacing="0" cellpadding="1" width="440px" border="1">
<tr id="itemPlaceholder" runat="server"></tr>
</table>
<asp:DataPager ID="EmployeesDataPager" runat="server" PageSize="10">
<Fields>
<asp:NumericPagerField />
</Fields>
</asp:DataPager>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td>
<asp:Label runat="server" ID="NameLabel"
Text='<%#Eval("LastName") + ", " + Eval("FirstName") %>' />
</td>
<td style="width:80px">
<asp:LinkButton runat="server"
ID="SelectEmployeeButton"
Text="Add To List"
CommandName="AddToList"
CommandArgument='<%#Eval("LastName") + ", " + Eval("FirstName") %>' />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
隐藏代码 (.cs)
protected void EmployeesListView_OnItemCommand(object sender, ListViewCommandEventArgs e)
{
if (String.Equals(e.CommandName, "AddToList"))
{
// Verify that the employee ID is not already in the list. If not, add the
// employee to the list.
ListViewDataItem dataItem = (ListViewDataItem)e.Item;
string employeeID =
EmployeesListView.DataKeys[dataItem.DisplayIndex].Value.ToString();
if (SelectedEmployeesListBox.Items.FindByValue(employeeID) == null)
{
ListItem item = new ListItem(e.CommandArgument.ToString(), employeeID);
SelectedEmployeesListBox.Items.Add(item);
}
}
}
这是参考站点。
于 2013-01-12T06:05:50.667 回答