Benutzer mit den meisten Antworten
ToolTip for gridview get cell value asp net C#

Frage
-
Hallo,
bitte um Hilfe, keine Ahnung was hier falsch ist, aber es wird immer der Text vom Header im ToolTip gezeigt, brauche die Werte aus den Cellen...
Mein Code:
protected void gv_RowCreated(object sender, GridViewRowEventArgs e) {
for (int i = 0; i < e.Row.Cells.Count; i++) { e.Row.Cells[i].ToolTip = e.Row.Cells[i].Text; } }
Danke
Gruß Danijel
- Bearbeitet Danijel Kramar Dienstag, 7. Juni 2016 12:49
Antworten
-
Hallo Danijel,
nuja, die Text Eigenschaft der Zelle selbst ist in dem Fall auch leer, da der Inhalt in deinen Label Controls steht.
Du müsstest also das Label suchen in der Zelle suchen und dessen Text Eigenschaft auslesen. Aber warum machst Du es dir eigentlich so schwer?
Zum einen hast Du im RowDataBound Ereignis über e.Row.DataItem Zugriff auf das Element, dass die Daten für die Zeile beinhaltet. D.h. Du kannst auch gleich diesen Wert auslesen und setzen.
if( e.Row.RowType == DataControlRowType.DataRow ) { <Datentyp> dataItem = (<Datentyp>)e.Row.DataItem; ...; }
Noch einfacher wäre es aber natürlich, wenn Du die Tooltip Eigenschaft einfach direkt in der Deklaration setzt.
<ItemTemplate> <asp:Label ID="myLabelARGE" runat="server" Text='<%#Eval("ARGE") %>' ToolTip='<%#Eval("ARGE") %>' Width="45px"></asp:Label> </ItemTemplate>
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Danijel Kramar Mittwoch, 8. Juni 2016 08:47
Alle Antworten
-
Hallo Danijel,
ändere "RowCreated" mal in "RowDataBound".
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hi Stefan,
habe es geändert...
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { for (int i = 0; i < e.Row.Cells.Count; i++) { e.Row.Cells[i].ToolTip = e.Row.Cells[i].Text; } }
...passiert wieder nichts...
Ich meine, es passiert doch was, er zeigt mir den Header namen...
Gruß Danijel
- Bearbeitet Danijel Kramar Mittwoch, 8. Juni 2016 05:28
-
Hallo Danijel,
zeig mal bitte die Deklaration deines GridViews, also den Teil:
<asp:GridView ...> ... </asp:GridView>
Ich hab das hier probiert und die zweite Variante mit RowDataBound funktioniert einwandfrei (natürlich muss diese Methode auch im RowDataBound Ereignis aufgerufen werden).
Führe ich das im RowCreated Ereignis aus, sind die Inhalt leer, da die Zellenwerte zu diesem Zeitpunkt noch nicht geschrieben wurden. Daher die Verlagerung ins RowDataBound Ereignis.
Da Du aber schreibst, dass der Headername angezeigt werden würde, nehme ich allerdings an, dass Du nach dem setzen der Tooltips in RowDataBound noch irgendwo anders weiteren Code hast, der die Tooltips auf die Headerzellenwerte setzt. Denn von alleine macht das GridView Control das nicht.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Mittwoch, 8. Juni 2016 06:22
-
Hi Stefan,
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="1600px" AllowPaging="True" CellPadding="4" OnRowEditing="GridView1_RowEditing" DataKeyNames="AngebotslisteBauID" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowDeleting="GridView1_RowDeleting" OnRowUpdating="GridView1_RowUpdating" AllowSorting="True" EnableModelValidation="True" CssClass="grid-view" OnRowCreated="gvHover_RowCreated" OnRowDataBound="GridView1_RowDataBound"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:LinkButton ID="btnDelete" runat="server" class="glyphicon glyphicon-trash" CommandArgument='<%# Eval("AngebotslisteBauID") %>' OnCommand="OnDeleteGridRow" OnClientClick="if (!confirm('Datensatz löschen?')) return false;"> </asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:CommandField ShowEditButton="True" ControlStyle-CssClass="glyphicon glyphicon-pencil" EditText="" /> <asp:TemplateField HeaderText="Eintragungsdatum" Visible="true"> <ItemTemplate> <asp:Label ID="myLabelEintragungsdatum" runat="server" Text='<%#Eval("Eintragungsdatum", "{0:dd.MM.yyyy hh:mm:ss}") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="AngebotslisteBauID" Visible="False"> <ItemTemplate> <asp:Label ID="AngebotslisteBauID" runat="server" Text='<%# Eval("AngebotslisteBauID") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Abgabe"> <ItemTemplate> <asp:Label ID="myLabelAbgabe" runat="server" Text='<%#Eval("Abgabe", "{0:dd.MM.yyyy}") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="Abgabe" runat="server" Text='<%# Eval("Abgabe", "{0:dd.MM.yyyy}") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Uhrzeit"> <ItemTemplate> <%#Eval("Uhrzeit") %> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="Uhrzeit" runat="server" Text='<%# Eval("Uhrzeit") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Bauvorhaben"> <ItemTemplate> <asp:Label ID="myLabelBauvorhaben" CssClass="myGridView" runat="server" Text='<%#Eval("Bauvorhaben") %>' Width="150px"></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="Bauvorhaben" runat="server" Text='<%# Bind("Bauvorhaben") %>'> </asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Bereich"> <ItemTemplate> <asp:Label ID="myLabelBereich" runat="server" CssClass="myGridView" Text='<%#Eval("Bereich") %>' Width="100px"></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="Bereich" runat="server" Text='<%# Eval("Bereich") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Gewerk"> <ItemTemplate> <asp:Label ID="myLabelGewerk" runat="server" Text='<%#Eval("Gewerk") %>' Width="100px"></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="Gewerk" runat="server" Text='<%# Eval("Gewerk") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Bauherr"> <ItemTemplate> <asp:Label ID="myLabelBauherr" runat="server" Text='<%#Eval("Bauherr") %>' Width="100px"></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="Bauherr" runat="server" Text='<%# Eval("Bauherr") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Ausschreiber"> <ItemTemplate> <asp:Label ID="myLabelAusschreiber" runat="server" Text='<%#Eval("Ausschreiber") %>' Width="100px"></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="Ausschreiber" runat="server" Text='<%# Eval("Ausschreiber") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Bereichsleiter"> <ItemTemplate> <asp:Label ID="myLabelBereichsleiter" runat="server" Text='<%#Eval("Bereichsleiter") %>' Width="100px"></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="Bereichsleiter" runat="server" Text='<%# Eval("Bereichsleiter") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Angebotsver."> <ItemTemplate> <asp:Label ID="myLabelAngebotsverantwortliche" runat="server" Text='<%#Eval("Angebotsverantwortliche") %>' Width="100px"></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="Angebotsverantwortliche" runat="server" Text='<%# Eval("Angebotsverantwortliche") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Kalkulant"> <ItemTemplate> <asp:Label ID="myLabelKalkulant" runat="server" Text='<%#Eval("Kalkulant") %>' Width="100px"></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="Kalkulant" runat="server" Text='<%# Eval("Kalkulant") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Öffentl."> <EditItemTemplate> <asp:DropDownList ID="Oeffentlich" runat="server" SelectedValue='<%#Bind("Oeffentlich") %>'> <asp:ListItem></asp:ListItem> <asp:ListItem>JA</asp:ListItem> <asp:ListItem>NEIN</asp:ListItem> </asp:DropDownList> </EditItemTemplate> <ItemTemplate> <asp:Label ID="myLabelOeffentlich" runat="server" Text='<%#Eval("Oeffentlich") %>' Width="50px"></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Status"> <EditItemTemplate> <asp:DropDownList ID="Status" runat="server" SelectedValue='<%#Bind("Status") %>'> <asp:ListItem></asp:ListItem> <asp:ListItem>Erfasst</asp:ListItem> <asp:ListItem>Kalk-Phase</asp:ListItem> <asp:ListItem>Abgegeben</asp:ListItem> </asp:DropDownList> </EditItemTemplate> <ItemTemplate> <asp:Label ID="myLabelStatus" runat="server" Text='<%#Eval("Status") %>' Width="75px"></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="ARGE"> <EditItemTemplate> <asp:DropDownList ID="ARGE" runat="server" SelectedValue='<%# Bind("ARGE") %>'> <asp:ListItem></asp:ListItem> <asp:ListItem>JA</asp:ListItem> <asp:ListItem>NEIN</asp:ListItem> </asp:DropDownList> </EditItemTemplate> <ItemTemplate> <asp:Label ID="myLabelARGE" runat="server" Text='<%#Eval("ARGE") %>' Width="45px"></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="AngSumme"> <EditItemTemplate> <asp:DropDownList ID="Summe" runat="server" SelectedValue='<%# Bind("Summe") %>'> <asp:ListItem></asp:ListItem> <asp:ListItem>>€1000</asp:ListItem> <asp:ListItem>>€5000</asp:ListItem> <asp:ListItem>>€10000</asp:ListItem> </asp:DropDownList> </EditItemTemplate> <ItemTemplate> <asp:Label ID="myLabelSumme" runat="server" Text='<%#Eval("Summe") %>' Width="47px"></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Username"> <ItemTemplate> <%#Eval("Username") %> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="Username" runat="server" Text='<%# Eval("Username") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> </Columns> <%-- <FooterStyle BackColor="#337ab7" ForeColor="#337ab7" /> <HeaderStyle BackColor="#337ab7" Font-Bold="True" ForeColor="White" />--%> <%--<PagerStyle BackColor="#337ab7" ForeColor="White" HorizontalAlign="Left" />--%> <%--<RowStyle BackColor="White" ForeColor="#003399" />--%> <%-- <SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />--%> </asp:GridView>
Danke
-
Hallo Danijel,
nuja, die Text Eigenschaft der Zelle selbst ist in dem Fall auch leer, da der Inhalt in deinen Label Controls steht.
Du müsstest also das Label suchen in der Zelle suchen und dessen Text Eigenschaft auslesen. Aber warum machst Du es dir eigentlich so schwer?
Zum einen hast Du im RowDataBound Ereignis über e.Row.DataItem Zugriff auf das Element, dass die Daten für die Zeile beinhaltet. D.h. Du kannst auch gleich diesen Wert auslesen und setzen.
if( e.Row.RowType == DataControlRowType.DataRow ) { <Datentyp> dataItem = (<Datentyp>)e.Row.DataItem; ...; }
Noch einfacher wäre es aber natürlich, wenn Du die Tooltip Eigenschaft einfach direkt in der Deklaration setzt.
<ItemTemplate> <asp:Label ID="myLabelARGE" runat="server" Text='<%#Eval("ARGE") %>' ToolTip='<%#Eval("ARGE") %>' Width="45px"></asp:Label> </ItemTemplate>
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Danijel Kramar Mittwoch, 8. Juni 2016 08:47
-
Hi Stefan,
warum ich das so schwer mache - hab noch nicht den ganzen Überblick über asp.net :(...und welche Möglichkeiten es gibt... kämpfe noch damit... aber es geht voran...
Danke für die Hilfe - es funktioniert mit der leichten variante ...
Gruß Danijel