2

リストビューからテキストボックスに値を表示する方法、またはセッションに保存して後で使用する方法をさまざまな方法で試しましたが、どれも機能しません。

GridView では動作させることができましたが、ListView では動作させることができません。

アイデアは、選択したユーザーのID(グリッドビュー)と選択したクラブのID(リストビュー)を取得することです

選択した行から両方の ID を取得して保存した後、クラブを別のユーザーに追加できます。

アイテムを持つテーブルClubsがあるとしましょう: (4 列、1 行)

ID: 1 クラブ名: ロサンゼルス レイカーズ 都市: ロサンゼルス 州: カリフォルニア

最初の行を押すと、別の色で強調表示され、ID がセッションまたはテキスト ボックスに保存されます。後で決めるので特に問題ありません。でも、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>&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、異なるデータを保存する 2 つの GRIDVIEW を持つことは可能ですか?

以前にこれを試しましたが、2番目のグリッドビューでアイテムを選択するたびに、1番目のグリッドビューのアイテムが選択されていました。

4

3 に答える 3

3

それを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 ,,
于 2014-11-23T20:23:25.980 に答える
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;


        }
     }
于 2018-12-22T01:10:42.437 に答える
-1

これは、listView イベントではなく、GRidView イベントのハンドラーです。

GridView1_RowCreated()

実際、私はあなたと同じ問題を抱えており、選択した生のIDを取得する方法を見つけました、、

     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;

私は初心者なので、2回変換します。もちろん、より良い方法があります<<しかし、専門家の回答がない場合はどうすればよいですか

于 2014-11-23T20:07:02.383 に答える