2

次のようなテンプレートを含む GridView があります。

<asp:GridView class="TableContainer" ID="prodGrid" runat="server" AutoGenerateColumns="False"
    EmptyDataText="No products" GridLines="None" CellPadding="4" OnRowCommand="prodGrid_RowCommand"
    OnRowDataBound="prodGrid_RowDataBound" EnableViewState="true" CssClass="Grid">
    <Columns>
      <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="chkSelectProduct" AutoPostBack="true" OnCheckedChanged="chkSelectedProduct_CheckChanged" runat="server">
                </asp:CheckBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Image ID="imgProd" ImageUrl="" AlternateText="image" runat="server" >
                </asp:Image>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <FooterStyle CssClass="Footer" />
    <RowStyle CssClass="RowStyle" />
    <HeaderStyle CssClass="HeaderStyle" />
    <AlternatingRowStyle CssClass="AlternatingRowStyle" />
</asp:GridView>

HTML マークアップでは、行を含むテーブルが作成されます。必要に応じて div を追加して、そこにメッセージを入れたり、両方の列にまたがるテーブルを追加したりしたいと考えています。メッセージはセルの 1 つに収まらないため、次のようになります。

Product    |      Image  |
-------------------------
Bananas        [image]


So if they select the bananas product and it doesnt have enough stock,
 i would like to insert something like

Product   |    Image    |
-------------------------
Bananas        [image]
--- DIV WITH MESSAGE SHOWS HERE ACCROSS THE GRID---

彼らが数量を修正したら、私はそれを非表示にします。上記のグリッド(複数の行がある)を指定してdivを挿入する方法を知りたいので、複数の製品でメッセージを表示できる場合. 対処方法についてアドバイスやアイデアが欲しいだけです。

4

1 に答える 1

1

TemplateField次のように、適切な基準が満たされている場合に、動的に表示されるアラート タイプ アイコン (感嘆符) などの別の画像を、ユーザーが画像にカーソルを合わせたときにツール ヒントとともに で使用することを検討してください。

<asp:TemplateField>
    <ItemTemplate>
        <asp:Image ID="imgProd" ImageUrl="" AlternateText="image" runat="server">
        </asp:Image>
        <asp:Image ID="alertProd" ImageUrl="" AlternateText="alert" 
                   runat="server" Visible="False">
        </asp:Image>
    </ItemTemplate>
</asp:TemplateField>

RowDataBound注: 次のように、グリッド ビューのイベントのロジックによってオプションで表示されるため、アラート イメージを非表示にします。

protected void prodGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
        // Check conditions here for whether or not to show alert image
        if(ShowAlertImage)
        {
            Image theAlertImage = e.Row.FindControl("alertProd") as Image;

            // Make sure we found the Image control before we try to set its tooltip
            if(theAlertImage != null)
            {
                theAlertImage.ToolTip = "Quantity is too low";
            }
        }
    }
}

ユーザーが警告画像にマウスを合わせると、製品の問題を知らせるメッセージが表示されます。

于 2013-10-17T04:16:22.313 に答える