2013-12-18 3 views
3

У меня есть следующий код ...Как добавить всплывающую подсказку Boundfields в DetailsView, но только если цвет столбца изменился

<asp:DetailsView ID="dvApprenticeship" runat="server" DataSourceID="dsApprenticeship" AutoGenerateRows="false" BackColor="#E0E8F0" GridLines="None" CellPadding="2" 
    DataKeyNames="ProgramID, ProgramName, OrganisationName, StudyYearID, Workgroup, Pathway, FinishDate" OnDataBound="Apprenticeship_DataBound"> 
    <Fields> 
     <asp:BoundField DataField="ProgramName" HeaderText="Program:" /> 
     <asp:BoundField DataField="StudyYearName" HeaderText="Study Year:" /> 
     <asp:HyperLinkField DataTextField="OrganisationName" HeaderText="Apprenticeship:&nbsp;" NavigateUrl="Apprenticeships.aspx" /> 
     <asp:BoundField DataField="Workgroup" HeaderText="Workgroup:" /> 
     <asp:BoundField DataField="Pathway" HeaderText="Pathway:" /> 
     <asp:TemplateField HeaderText="Nominal Completion:&nbsp;"> 
      <ItemTemplate> 
       <asp:Label ID="labEndDate" runat="server" Text='<%# Eval("FinishDate","{0:d/MM/yyyy}") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Fields> 
    <FooterTemplate> 
     <asp:LinkButton ID="lbAddProgramUnits" runat="server" OnClick="AddProgramUnits_Click" ForeColor="White" Font-Bold="true" 
      OnClientClick="return confirm('Import the Program Units listed - this may overwrite unit dates. Are you sure?');">Import from Program</asp:LinkButton>&nbsp;&nbsp; 
     <a href="#" onclick="showhelp('progimphelp');" style="color:White;font-weight:bold;">Help</a> 
    </FooterTemplate> 
    <FooterStyle HorizontalAlign="Center" BackColor="LightSlateGray" /> 
</asp:DetailsView> 

Я хочу, чтобы иметь возможность показать всплывающую подсказку, когда один из выше Boundfields изменил цвет.

В моем коде C# у меня есть код, который изменяет цвет этих связанных полей в зависимости от определенных условий данных. Это работает нормально.

Но то, что я хочу, чтобы быть в состоянии дать пользователям подсказки, когда они когда-либо наведите мышь на эти Boundfields и только если это поле окрашивается по-разному, в моем случае

color.Yellow

.

ответ

1

Если вы устанавливаете цвет на желтый в случае DetailsView DataBound на основе некоторых критериев, вы можете установить подсказку в том же блоке:

DetailsViewRow.Cells[indexofyellowfield].ToolTip = "some help from code-behind"; 
+0

Спасибо! Что-то очень простое. Я понятия не имел об этой собственности. – Fandango68

+0

Я знаю, что это старый пост, но есть ли способ добавить css в подсказку, – JustLearning

+2

@CosmosBanda искать сайт или задавать свой вопрос отдельно ... мы действительно не отвечаем на несвязанные вопросы в комментариях к ответу другой вопрос. – ethorn10

3

И ответить на мой собственный вопрос, с чем-то еще, что я который был упущен: конвертировать BoundField в параметр TemplateField.

От этого ...

<asp:BoundField HeaderText="Claim Type ID" ..etc../> 

В этом ...

<asp:TemplateField HeaderText="Claim Type ID"> 
    <EditItemTemplate> 
     <asp:Label ID="lblClaimTypeID" runat="server" Text='<%# Eval("ClaimTypeID") %>' ToolTip="Enter a numerical value that conforms to the UserChoice Policy document (ie: 65 for GAT)."></asp:Label> 
    </EditItemTemplate> 
    <InsertItemTemplate> 
     <asp:TextBox ID="txtClaimTypeID" runat="server" Text='<%# Bind("ClaimTypeID") %>' ToolTip="Enter a numerical value that conforms to the UserChoice Policy document (ie: 65 for GAT)."></asp:TextBox> 
    </InsertItemTemplate> 
    <ItemTemplate> 
     <asp:Label ID="itClaimTypeID" runat="server" Text='<%# Bind("ClaimTypeID") %>' ToolTip="A numerical value that conforms to the UserChoice Policy document (ie: 65 for GAT)."></asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 

Это сладкое, потому что в режиме конструктора в ASPX, вы можете выбрать DetailsView, выберите Edit Fields и выберите поля BoundFields и преобразуйте их прямо в TemplateFields. Красота в том, что он преобразует BoundFields в аккуратные ярлыки или текстовые поля, позволяя вам напрямую кодировать свойство ToolTip! И никакого кода нет! Microsoft получила что-то прямо там на этот раз.