none
Hervorheben einer ListView-Reihe durch Mausklick RRS feed

  • Frage

  • Folgende lange Tabelle wurde mir in der Entwurfsansicht von Visual Studio 2012 erzeugt:

    Sie hat den Sinn, alle Views aus der Beispieldatenbank AdventureWorksDW2012 anzuzeigen.

    <asp:ListView ID="ListView1" runat="server" DataKeyNames="id" DataSourceID="SqlDataSource2" OnSelectedIndexChanging="ListView1_SelectedIndexChanging">
        <AlternatingItemTemplate>
            <tr style="background-color:#FFFFFF;">
                <td><asp:Label ID="nameLabel" runat="server" Text='<%# Eval("name") %>' /></td>
                <td><asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>' /></td>
                <td><asp:Label ID="xtypeLabel" runat="server" Text='<%# Eval("xtype") %>' /></td>
                <td><asp:Label ID="uidLabel" runat="server" Text='<%# Eval("uid") %>' /></td>
                <td><asp:Label ID="infoLabel" runat="server" Text='<%# Eval("info") %>' /></td>
                <td><asp:Label ID="statusLabel" runat="server" Text='<%# Eval("status") %>' /></td>
                <td><asp:Label ID="base_schema_verLabel" runat="server" Text='<%# Eval("base_schema_ver") %>' /></td>
                <td><asp:Label ID="replinfoLabel" runat="server" Text='<%# Eval("replinfo") %>' /></td>
                <td><asp:Label ID="parent_objLabel" runat="server" Text='<%# Eval("parent_obj") %>' /></td>
                <td><asp:Label ID="crdateLabel" runat="server" Text='<%# Eval("crdate") %>' /></td>
                <td><asp:Label ID="ftcatidLabel" runat="server" Text='<%# Eval("ftcatid") %>' /></td>
                <td><asp:Label ID="schema_verLabel" runat="server" Text='<%# Eval("schema_ver") %>' /></td>
                <td><asp:Label ID="stats_schema_verLabel" runat="server" Text='<%# Eval("stats_schema_ver") %>' /></td>
                <td><asp:Label ID="typeLabel" runat="server" Text='<%# Eval("type") %>' /></td>
                <td><asp:Label ID="userstatLabel" runat="server" Text='<%# Eval("userstat") %>' /></td>
                <td><asp:Label ID="sysstatLabel" runat="server" Text='<%# Eval("sysstat") %>' /></td>
                <td><asp:Label ID="indexdelLabel" runat="server" Text='<%# Eval("indexdel") %>' /></td>
                <td><asp:Label ID="refdateLabel" runat="server" Text='<%# Eval("refdate") %>' /></td>
                <td><asp:Label ID="versionLabel" runat="server" Text='<%# Eval("version") %>' /></td>
                <td><asp:Label ID="deltrigLabel" runat="server" Text='<%# Eval("deltrig") %>' /></td>
                <td><asp:Label ID="instrigLabel" runat="server" Text='<%# Eval("instrig") %>' /></td>
                <td><asp:Label ID="updtrigLabel" runat="server" Text='<%# Eval("updtrig") %>' /></td>
                <td><asp:Label ID="seltrigLabel" runat="server" Text='<%# Eval("seltrig") %>' /></td>
                <td><asp:Label ID="categoryLabel" runat="server" Text='<%# Eval("category") %>' /></td>
                <td><asp:Label ID="cacheLabel" runat="server" Text='<%# Eval("cache") %>' /></td>
            </tr>
        </AlternatingItemTemplate>
        <EditItemTemplate>
            <tr style="background-color:#ff0000;color: grey;">
                <td><asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="Aktualisieren" />
                    <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Abbrechen" /></td>
                <td><asp:TextBox ID="nameTextBox" runat="server" Text='<%# Bind("name") %>' /></td>
                <td><asp:Label ID="idLabel1" runat="server" Text='<%# Eval("id") %>' /></td>
                <td><asp:TextBox ID="xtypeTextBox" runat="server" Text='<%# Bind("xtype") %>' /></td>
                <td><asp:TextBox ID="uidTextBox" runat="server" Text='<%# Bind("uid") %>' /></td>
                <td><asp:TextBox ID="infoTextBox" runat="server" Text='<%# Bind("info") %>' /></td>
                <td><asp:TextBox ID="statusTextBox" runat="server" Text='<%# Bind("status") %>' /></td>
                <td><asp:TextBox ID="base_schema_verTextBox" runat="server" Text='<%# Bind("base_schema_ver") %>' /></td>
                <td><asp:TextBox ID="replinfoTextBox" runat="server" Text='<%# Bind("replinfo") %>' /></td>
                <td><asp:TextBox ID="parent_objTextBox" runat="server" Text='<%# Bind("parent_obj") %>' /></td>
                <td><asp:TextBox ID="crdateTextBox" runat="server" Text='<%# Bind("crdate") %>' /></td>
                <td><asp:TextBox ID="ftcatidTextBox" runat="server" Text='<%# Bind("ftcatid") %>' /></td>
                <td><asp:TextBox ID="schema_verTextBox" runat="server" Text='<%# Bind("schema_ver") %>' /></td>
                <td><asp:TextBox ID="stats_schema_verTextBox" runat="server" Text='<%# Bind("stats_schema_ver") %>' /></td>
                <td><asp:TextBox ID="typeTextBox" runat="server" Text='<%# Bind("type") %>' /></td>
                <td><asp:TextBox ID="userstatTextBox" runat="server" Text='<%# Bind("userstat") %>' /></td>
                <td><asp:TextBox ID="sysstatTextBox" runat="server" Text='<%# Bind("sysstat") %>' /></td>
                <td><asp:TextBox ID="indexdelTextBox" runat="server" Text='<%# Bind("indexdel") %>' /></td>
                <td><asp:TextBox ID="refdateTextBox" runat="server" Text='<%# Bind("refdate") %>' /></td>
                <td><asp:TextBox ID="versionTextBox" runat="server" Text='<%# Bind("version") %>' /></td>
                <td><asp:TextBox ID="deltrigTextBox" runat="server" Text='<%# Bind("deltrig") %>' /></td>
                <td><asp:TextBox ID="instrigTextBox" runat="server" Text='<%# Bind("instrig") %>' /></td>
                <td><asp:TextBox ID="updtrigTextBox" runat="server" Text='<%# Bind("updtrig") %>' /></td>
                <td><asp:TextBox ID="seltrigTextBox" runat="server" Text='<%# Bind("seltrig") %>' /></td>
                <td><asp:TextBox ID="categoryTextBox" runat="server" Text='<%# Bind("category") %>' /></td>
                <td><asp:TextBox ID="cacheTextBox" runat="server" Text='<%# Bind("cache") %>' /></td>
            </tr>
        </EditItemTemplate>
        <EmptyDataTemplate>
            <table runat="server" style="background-color: grey;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;">
                <tr>
                    <td>Keine Daten vorhanden.</td>
                </tr>
            </table>
        </EmptyDataTemplate>
        <InsertItemTemplate>
            <tr style="">
                <td><asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="Einfügen" />
                    <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Löschen" /></td>
                <td><asp:TextBox ID="nameTextBox" runat="server" Text='<%# Bind("name") %>' /></td>
                <td><asp:TextBox ID="idTextBox" runat="server" Text='<%# Bind("id") %>' /></td>
                <td><asp:TextBox ID="xtypeTextBox" runat="server" Text='<%# Bind("xtype") %>' /></td>
                <td><asp:TextBox ID="uidTextBox" runat="server" Text='<%# Bind("uid") %>' /></td>
                <td><asp:TextBox ID="infoTextBox" runat="server" Text='<%# Bind("info") %>' /></td>
                <td><asp:TextBox ID="statusTextBox" runat="server" Text='<%# Bind("status") %>' /></td>
                <td><asp:TextBox ID="base_schema_verTextBox" runat="server" Text='<%# Bind("base_schema_ver") %>' /></td>
                <td><asp:TextBox ID="replinfoTextBox" runat="server" Text='<%# Bind("replinfo") %>' /></td>
                <td><asp:TextBox ID="parent_objTextBox" runat="server" Text='<%# Bind("parent_obj") %>' /></td>
                <td><asp:TextBox ID="crdateTextBox" runat="server" Text='<%# Bind("crdate") %>' /></td>
                <td><asp:TextBox ID="ftcatidTextBox" runat="server" Text='<%# Bind("ftcatid") %>' /></td>
                <td><asp:TextBox ID="schema_verTextBox" runat="server" Text='<%# Bind("schema_ver") %>' /></td>
                <td><asp:TextBox ID="stats_schema_verTextBox" runat="server" Text='<%# Bind("stats_schema_ver") %>' /></td>
                <td><asp:TextBox ID="typeTextBox" runat="server" Text='<%# Bind("type") %>' /></td>
                <td><asp:TextBox ID="userstatTextBox" runat="server" Text='<%# Bind("userstat") %>' /></td>
                <td><asp:TextBox ID="sysstatTextBox" runat="server" Text='<%# Bind("sysstat") %>' /></td>
                <td><asp:TextBox ID="indexdelTextBox" runat="server" Text='<%# Bind("indexdel") %>' /></td>
                <td><asp:TextBox ID="refdateTextBox" runat="server" Text='<%# Bind("refdate") %>' /></td>
                <td><asp:TextBox ID="versionTextBox" runat="server" Text='<%# Bind("version") %>' /></td>
                <td><asp:TextBox ID="deltrigTextBox" runat="server" Text='<%# Bind("deltrig") %>' /></td>
                <td><asp:TextBox ID="instrigTextBox" runat="server" Text='<%# Bind("instrig") %>' /></td>
                <td><asp:TextBox ID="updtrigTextBox" runat="server" Text='<%# Bind("updtrig") %>' /></td>
                <td><asp:TextBox ID="seltrigTextBox" runat="server" Text='<%# Bind("seltrig") %>' /></td>
                <td><asp:TextBox ID="categoryTextBox" runat="server" Text='<%# Bind("category") %>' /></td>
                <td><asp:TextBox ID="cacheTextBox" runat="server" Text='<%# Bind("cache") %>' /></td>
            </tr>
        </InsertItemTemplate>
        <ItemTemplate>
            <tr style="background-color:#DCDCDC;color: #000000;">
                <td><asp:Label ID="nameLabel" runat="server" Text='<%# Eval("name") %>' /></td>
                <td><asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>' /></td>
                <td><asp:Label ID="xtypeLabel" runat="server" Text='<%# Eval("xtype") %>' /></td>
                <td><asp:Label ID="uidLabel" runat="server" Text='<%# Eval("uid") %>' /></td>
                <td><asp:Label ID="infoLabel" runat="server" Text='<%# Eval("info") %>' /></td>
                <td><asp:Label ID="statusLabel" runat="server" Text='<%# Eval("status") %>' /></td>
                <td><asp:Label ID="base_schema_verLabel" runat="server" Text='<%# Eval("base_schema_ver") %>' /></td>
                <td><asp:Label ID="replinfoLabel" runat="server" Text='<%# Eval("replinfo") %>' /></td>
                <td><asp:Label ID="parent_objLabel" runat="server" Text='<%# Eval("parent_obj") %>' /></td>
                <td><asp:Label ID="crdateLabel" runat="server" Text='<%# Eval("crdate") %>' /></td>
                <td><asp:Label ID="ftcatidLabel" runat="server" Text='<%# Eval("ftcatid") %>' /></td>
                <td><asp:Label ID="schema_verLabel" runat="server" Text='<%# Eval("schema_ver") %>' /></td>
                <td><asp:Label ID="stats_schema_verLabel" runat="server" Text='<%# Eval("stats_schema_ver") %>' /></td>
                <td><asp:Label ID="typeLabel" runat="server" Text='<%# Eval("type") %>' /></td>
                <td><asp:Label ID="userstatLabel" runat="server" Text='<%# Eval("userstat") %>' /></td>
                <td><asp:Label ID="sysstatLabel" runat="server" Text='<%# Eval("sysstat") %>' /></td>
                <td><asp:Label ID="indexdelLabel" runat="server" Text='<%# Eval("indexdel") %>' /></td>
                <td><asp:Label ID="refdateLabel" runat="server" Text='<%# Eval("refdate") %>' /></td>
                <td><asp:Label ID="versionLabel" runat="server" Text='<%# Eval("version") %>' /></td>
                <td><asp:Label ID="deltrigLabel" runat="server" Text='<%# Eval("deltrig") %>' /></td>
                <td><asp:Label ID="instrigLabel" runat="server" Text='<%# Eval("instrig") %>' /></td>
                <td><asp:Label ID="updtrigLabel" runat="server" Text='<%# Eval("updtrig") %>' /></td>
                <td><asp:Label ID="seltrigLabel" runat="server" Text='<%# Eval("seltrig") %>' /></td>
                <td><asp:Label ID="categoryLabel" runat="server" Text='<%# Eval("category") %>' /></td>
                <td><asp:Label ID="cacheLabel" runat="server" Text='<%# Eval("cache") %>' /></td>
            </tr>
        </ItemTemplate>
        <LayoutTemplate><!-- textfarbe überschriften -->
            <table runat="server">
                <tr runat="server">
                    <td runat="server">
                        <table id="itemPlaceholderContainer" runat="server" border="1" style="background-color: grey;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:black;">
                                <th runat="server">name</th>
                                <th runat="server">id</th>
                                <th runat="server">xtype</th>
                                <th runat="server">uid</th>
                                <th runat="server">info</th>
                                <th runat="server">status</th>
                                <th runat="server">base_schema_ver</th>
                                <th runat="server">replinfo</th>
                                <th runat="server">parent_obj</th>
                                <th runat="server">crdate</th>
                                <th runat="server">ftcatid</th>
                                <th runat="server">schema_ver</th>
                                <th runat="server">stats_schema_ver</th>
                                <th runat="server">type</th>
                                <th runat="server">userstat</th>
                                <th runat="server">sysstat</th>
                                <th runat="server">indexdel</th>
                                <th runat="server">refdate</th>
                                <th runat="server">version</th>
                                <th runat="server">deltrig</th>
                                <th runat="server">instrig</th>
                                <th runat="server">updtrig</th>
                                <th runat="server">seltrig</th>
                                <th runat="server">category</th>
                                <th runat="server">cache</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;"></td>
                </tr>
            </table>
        </LayoutTemplate>
        <SelectedItemTemplate>
            <tr style="background-color:#ff0000;font-weight: bold;color: grey;">
                <td><asp:Label ID="nameLabel" runat="server" Text='<%# Eval("name") %>' /></td>
                <td><asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>' /></td>
                <td><asp:Label ID="xtypeLabel" runat="server" Text='<%# Eval("xtype") %>' /></td>
                <td><asp:Label ID="uidLabel" runat="server" Text='<%# Eval("uid") %>' /></td>
                <td><asp:Label ID="infoLabel" runat="server" Text='<%# Eval("info") %>' /></td>
                <td><asp:Label ID="statusLabel" runat="server" Text='<%# Eval("status") %>' /></td>
                <td><asp:Label ID="base_schema_verLabel" runat="server" Text='<%# Eval("base_schema_ver") %>' /></td>
                <td><asp:Label ID="replinfoLabel" runat="server" Text='<%# Eval("replinfo") %>' /></td>
                <td><asp:Label ID="parent_objLabel" runat="server" Text='<%# Eval("parent_obj") %>' /></td>
                <td><asp:Label ID="crdateLabel" runat="server" Text='<%# Eval("crdate") %>' /></td>
                <td><asp:Label ID="ftcatidLabel" runat="server" Text='<%# Eval("ftcatid") %>' /></td>
                <td><asp:Label ID="schema_verLabel" runat="server" Text='<%# Eval("schema_ver") %>' /></td>
                <td><asp:Label ID="stats_schema_verLabel" runat="server" Text='<%# Eval("stats_schema_ver") %>' /></td>
                <td><asp:Label ID="typeLabel" runat="server" Text='<%# Eval("type") %>' /></td>
                <td><asp:Label ID="userstatLabel" runat="server" Text='<%# Eval("userstat") %>' /></td>
                <td><asp:Label ID="sysstatLabel" runat="server" Text='<%# Eval("sysstat") %>' /></td>
                <td><asp:Label ID="indexdelLabel" runat="server" Text='<%# Eval("indexdel") %>' /></td>
                <td><asp:Label ID="refdateLabel" runat="server" Text='<%# Eval("refdate") %>' /></td>
                <td><asp:Label ID="versionLabel" runat="server" Text='<%# Eval("version") %>' /></td>
                <td><asp:Label ID="deltrigLabel" runat="server" Text='<%# Eval("deltrig") %>' /></td>
                <td><asp:Label ID="instrigLabel" runat="server" Text='<%# Eval("instrig") %>' /></td>
                <td><asp:Label ID="updtrigLabel" runat="server" Text='<%# Eval("updtrig") %>' /></td>
                <td><asp:Label ID="seltrigLabel" runat="server" Text='<%# Eval("seltrig") %>' /></td>
                <td><asp:Label ID="categoryLabel" runat="server" Text='<%# Eval("category") %>' /></td>
                <td><asp:Label ID="cacheLabel" runat="server" Text='<%# Eval("cache") %>' /></td>
            </tr>
        </SelectedItemTemplate>
    </asp:ListView>

    Die Daten für die Tabelle werden jeweils aus Connectionstrings in der web.config geladen.

    Ich möchte jetzt bei der generierten Tabelle bei einem Mausklick im Webbrowser auf eine Reihe die entsprechende Reihe hervorheben, in dem idealerweise dann die Hintergrundfarbe für eben diese angepasst wird.

    Mein erster Versuch wurde leider eine Hover-Funktion für ein GridView :D die aber leider auch nicht für Listviews übernommen werden kann bzw. (meines Wissens) so umgebogen werden kann, dass dies per Mausklick passiert:

            protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    e.Row.Attributes.Add("onmouseover",
                "this.style.backgroundColor='#00ffff'");
                    e.Row.Attributes.Add("onmouseout",
                "this.style.backgroundColor='white'");
                }
            }

    Wenn ich die void auf ein listView loslassen möchte, meldet mir Visual Studio bei Row einen unerklärlichen Fehler.

    Laut dieser Anleitung tut sich auch nichts bei mir, dort werden für die Bind Funktion ja auch die Daten neu geladen, die ja an sich schon in der Tabelle stehen.

    Wie realisiere ich möglichst ohne Scripts eine solche Hervorhebung?

    Mittwoch, 9. April 2014 13:00

Antworten

  • Okay - das Auswählen von Zeilen geht definitiv nur mit Links -strikt nach Anleitung geht alles - ich hatte es versucht ohne Links hinzubekommen, was warum auch immer nicht möglich ist (bzw. nur mit Aufwand und "unsichtbarem Link" über der gesamten Spalte)...

    also für die die vor dem gleichen Problem stehen:
    In den Tabellen eine Spalte mit Links machen, die jeweils das "select"-event auslösen, dann mit 

            protected void ListView1_SelectedIndexChanging(object sender, ListViewSelectEventArgs e)
            {
                ListView1.SelectedIndex = e.NewSelectedIndex;
                string selected = ListView1.SelectedDataKey.Value.ToString();
                //string selected = ListView1.DataKeys[e.NewSelectedIndex].Value.ToString(); 
                Label1.Text = "Selected ID: " + selected;
                ListView1.DataBind();
    }
    in der Codebehind abhandeln (DataBind nur, wenn die ASPX über Connectionstrings etc schon alles Datenmäßíg abruft - ansonsten Prozedur zum abrufen einbinden)
    • Als Antwort markiert paradonym Donnerstag, 10. April 2014 11:06
    • Bearbeitet paradonym Donnerstag, 10. April 2014 11:11
    Donnerstag, 10. April 2014 07:18

Alle Antworten