データベースからのデータを動的に表示するためにリストビューを使用しようとしています。そのデータをクリックすると、選択したデータのIDを取得してバックグラウンドコーディングを実行し、別のページに移動する必要があります。
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
CommandArgument
このように、aspxの ListViewプロパティとOnItemCommand
コードビハインドのListViewを使用します
つまり、IDを取得して、OnItemCommand
次のような別のページに移動できます。
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 に答える