我尝试了很多不同的方法,将列表视图中的值显示到文本框中,或者只是将它存储在会话中并稍后使用,但它都不起作用。
我能够使它适用于GridView,但我无法让它适用于ListView。
我们的想法是获取所选用户的ID(在gridview中)和所选俱乐部的ID(在列表视图中)
从所选行获取并存储两个id之后,我可以将俱乐部添加到另一个用户。
假设我有桌子俱乐部,其中有项目:(4列,1行)
ID:1 俱乐部名称:洛杉矶湖人队 城市:洛杉矶 州:加利福尼亚州
当我按下第一行时,它应以不同的颜色突出显示,然后将ID存储到会话或文本框。真的不重要,因为我稍后会做出决定。但你能帮我拿到身份证吗?
这是源代码
<asp:ListView ID="ListView1" runat="server" DataKeyNames="KlubID" DataSourceID="SqlDataSource1" OnSelectedIndexChanged="ListView1_SelectedIndexChanged" style="margin-right: 324px" OnRowCreated="GridView1_RowCreated">
<AlternatingItemTemplate>
<tr style="background-color:#FFF8DC;">
<td>
<asp:Label ID="KlubIDLabel" runat="server" Text='<%# Eval("KlubID") %>' />
</td>
<td>
<asp:Label ID="ImeKlubaLabel" runat="server" Text='<%# Eval("ImeKluba") %>' />
</td>
<td>
<asp:Label ID="KrajLabel" runat="server" Text='<%# Eval("Kraj") %>' />
</td>
<td>
<asp:Label ID="DrzavaLabel" runat="server" Text='<%# Eval("Drzava") %>' />
</td>
<td>
<asp:Label ID="MenedzerLabel" runat="server" Text='<%# Eval("Menedzer") %>' />
</td>
</tr>
</AlternatingItemTemplate>
<EditItemTemplate>
<tr style="background-color:#008A8C;color: #FFFFFF;">
<td>
<asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="Update" />
<asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" />
</td>
<td>
<asp:Label ID="KlubIDLabel1" runat="server" Text='<%# Eval("KlubID") %>' />
</td>
<td>
<asp:TextBox ID="ImeKlubaTextBox" runat="server" Text='<%# Bind("ImeKluba") %>' />
</td>
<td>
<asp:TextBox ID="KrajTextBox" runat="server" Text='<%# Bind("Kraj") %>' />
</td>
<td>
<asp:TextBox ID="DrzavaTextBox" runat="server" Text='<%# Bind("Drzava") %>' />
</td>
<td>
<asp:TextBox ID="MenedzerTextBox" runat="server" Text='<%# Bind("Menedzer") %>' />
</td>
</tr>
</EditItemTemplate>
<EmptyDataTemplate>
<table runat="server" style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;">
<tr>
<td>No data was returned.</td>
</tr>
</table>
</EmptyDataTemplate>
<InsertItemTemplate>
<tr style="">
<td>
<asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="Insert" />
<asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Clear" />
</td>
<td> </td>
<td>
<asp:TextBox ID="ImeKlubaTextBox" runat="server" Text='<%# Bind("ImeKluba") %>' />
</td>
<td>
<asp:TextBox ID="KrajTextBox" runat="server" Text='<%# Bind("Kraj") %>' />
</td>
<td>
<asp:TextBox ID="DrzavaTextBox" runat="server" Text='<%# Bind("Drzava") %>' />
</td>
<td>
<asp:TextBox ID="MenedzerTextBox" runat="server" Text='<%# Bind("Menedzer") %>' />
</td>
</tr>
</InsertItemTemplate>
<ItemTemplate>
<tr style="background-color:#DCDCDC;color: #000000;">
<td>
<asp:Label ID="KlubIDLabel" runat="server" Text='<%# Eval("KlubID") %>' />
</td>
<td>
<asp:Label ID="ImeKlubaLabel" runat="server" Text='<%# Eval("ImeKluba") %>' />
</td>
<td>
<asp:Label ID="KrajLabel" runat="server" Text='<%# Eval("Kraj") %>' />
</td>
<td>
<asp:Label ID="DrzavaLabel" runat="server" Text='<%# Eval("Drzava") %>' />
</td>
<td>
<asp:Label ID="MenedzerLabel" runat="server" Text='<%# Eval("Menedzer") %>' />
</td>
</tr>
</ItemTemplate>
<LayoutTemplate>
<table runat="server">
<tr runat="server">
<td runat="server">
<table id="itemPlaceholderContainer" runat="server" border="1" style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;font-family: Verdana, Arial, Helvetica, sans-serif;">
<tr runat="server" style="background-color:#DCDCDC;color: #000000;">
<th runat="server">KlubID</th>
<th runat="server">ImeKluba</th>
<th runat="server">Kraj</th>
<th runat="server">Drzava</th>
<th runat="server">Menedzer</th>
</tr>
<tr id="itemPlaceholder" runat="server">
</tr>
</table>
</td>
</tr>
<tr runat="server">
<td runat="server" style="text-align: center;background-color: #CCCCCC;font-family: Verdana, Arial, Helvetica, sans-serif;color: #000000;">
<asp:DataPager ID="DataPager1" runat="server">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowLastPageButton="True" />
</Fields>
</asp:DataPager>
</td>
</tr>
</table>
</LayoutTemplate>
<SelectedItemTemplate>
<tr style="background-color:#008A8C;font-weight: bold;color: #FFFFFF;">
<td>
<asp:Label ID="KlubIDLabel" runat="server" Text='<%# Eval("KlubID") %>' />
</td>
<td>
<asp:Label ID="ImeKlubaLabel" runat="server" Text='<%# Eval("ImeKluba") %>' />
</td>
<td>
<asp:Label ID="KrajLabel" runat="server" Text='<%# Eval("Kraj") %>' />
</td>
<td>
<asp:Label ID="DrzavaLabel" runat="server" Text='<%# Eval("Drzava") %>' />
</td>
<td>
<asp:Label ID="MenedzerLabel" runat="server" Text='<%# Eval("Menedzer") %>' />
</td>
</tr>
</SelectedItemTemplate>
</asp:ListView>
这是代码 - 我最新的,不起作用
protected void GridView1_RowCreated(object sender, System.Web.UI.WebControls.ListViewCommandEventArgs e)
{
ListViewDataItem item1 = e.Item as ListViewDataItem;
int findMe = item1.DisplayIndex;
var route = (Label)item1.FindControl("ID");
TextBox1.Text = route.Text;
}
感谢您的任何意见,谢谢!
PS,是否有可能存储两个存储不同数据的GRIDVIEW?
我之前尝试过这个,但每当我在第二个gridview中选择项目时,第一个gridview中的项目就会被选中。
答案 0 :(得分:2)
无需将其转换为webControl ::
ListViewItem item = ListView1.Items[ListView1.SelectedIndex];
Label c = (Label)item.FindControl("here type the lable id!!");
//then use
string result=c.text;// you get the value or the text of the Label ,,
答案 1 :(得分:0)
我知道这已经很老了..进行其他任何搜索
protected void LinkButton1_Click(object sender, EventArgs e)
{
ListViewItem Item = ((LinkButton)sender).NamingContainer as
ListViewItem;
if (Item != null)
{
//for DataKeys
int Klub_ID = (int)ListView1.DataKeys[Item.DataItemIndex]
["KlubID"];
//for any labl in your ListView
Label lblImeKlubaLabel =
(Label)Item.FindControl("ImeKlubaLabel");
Session["Duration"] = lblImeKlubaLabel.Text;
}
}
答案 2 :(得分:-1)
这是GRidView Events的处理程序而不是listView Events
GridView1_RowCreated()
其实我和你有同样的问题, 我找到了一种获取所选原始内容的方法,
int id =(int) ListView1.SelectedDataKey.Value;
// if the Id is
// the datakey which i think the primary key""
如果你想获得所选listView raw ::
中不同列的数据 ListViewItem item = ListView1.Items[ListView1.SelectedIndex];
WebControl c = (WebControl)item.FindControl("here type the lable id!!");
Label la = (Label)c;//to get the text of the label by using c.Text;
因为我是初学者,我转换了两次,当然会有更好的方法&lt;&lt;但如果没有专家回答该怎么办