c# - 使用 asp.net c# 从 ListView 中的选定项目中获取值

标签 c# asp.net listview listviewitem fullrowselect

我尝试了很多不同的方法来将 ListView 中的值显示到文本框,或者只是将其存储在 session 中并稍后使用,但都不起作用。

我能够使其适用于 GridView,但我无法使其适用于 ListView。

这个想法是获取所选用户的ID(在 GridView 中)和所选俱乐部的ID(在 ListView 中)

从所选行获取并存储两个 ID 后,我可以将俱乐部添加到另一个用户。

假设我有一个表Clubs,其中包含项目:(4 列,1 行)

ID:1 俱乐部名称:洛杉矶湖人队 城市: 洛杉矶 州:加利福尼亚州

当我按下第一行时,它应该以不同的颜色突出显示,然后将 ID 存储到 session 或仅存储到文本框。其实并不重要,因为我稍后再决定。但是你们能帮我拿到身份证吗?

这是源代码

<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>&nbsp;</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 中的项目就会被选中。

最佳答案

无需将其转换为 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 ,,

关于c# - 使用 asp.net c# 从 ListView 中的选定项目中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26950652/

相关文章:

java - Wicket 替换 ListView 中的项目

android - 选择所有 ListViewItem 的 CheckBox

listview - 如何在滚动时停止刷新 ListView 中的列表项

c# - SQL Server 和 Linq-to-SQL 的连接池/限制

c# - 在 Ninject 中是否允许将 IKernel 注入(inject)到一些地方?

ASP.NET 5 vNext。仅发布 "dist"子文件夹

asp.net - 如何以编程方式触发 dropdownlist.selectedindexchanged 事件

asp.net - 授权属性/角色工作不正常

c# - 'Emgu.CV.CvInvoke' 的类型初始值设定项抛出异常

C# 从 DataGridView 插入 MySQL 数据后被截断