3

我有以下代码...

<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 上时为用户提供工具提示,并且仅当该字段的颜色不同时,在我的情况下

颜色.黄色

.

4

2 回答 2

3

为了回答我自己的问题,我发现了一些被忽略的东西:convert BoundField to 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 转换为整洁的 Labels 或 TextBoxes,允许您直接在 ToolTip 属性中编码!而且后面没有代码!微软有一次在那里得到了一些东西。

于 2014-01-15T06:48:54.993 回答
1

DataBound如果您根据某些条件在 DetailsView 事件中将颜色设置为黄色,则可以在同一块中设置工具提示:

DetailsViewRow.Cells[indexofyellowfield].ToolTip = "some help from code-behind";
于 2013-12-18T04:11:34.950 回答