1

以下に示すようなグリッドビューがあります。EmpTypeがコントラクトの場合、EmpIDは「XXX」としてマスクする必要があります。正社員の場合は、実際のEmpIDを表示する必要があります。また、マスクされている場合は、EmpID列にボタンコントロールを追加する必要があります。

マークアップを使用してそれを行う必要があります; コードビハインドを使用していません。このロジックのGridviewのItemTemplateの条件付きロジックをどのように記述できますか?

注:.Net 4.0

    <asp:GridView ID="Gridview1" runat="server" AutoGenerateColumns="False">
        <Columns>
            <asp:BoundField HeaderText="AssociateID" DataField="AssociateID" />
            <asp:TemplateField HeaderText="EmpID">
                <ItemTemplate>
                    <%# Eval("EmpID")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField HeaderText="EmpType" DataField="EmpType" />
        </Columns>
    </asp:GridView>

コードビハインド

    List<Associate> associatesList = new List<Associate>();
    associatesList.Add(new Associate { AssociateID = 1, EmpID = 101, EmpType = "Contract" });
    associatesList.Add(new Associate { AssociateID = 2, EmpID = 102, EmpType = "Regular" });
    Gridview1.DataSource = associatesList;
    Gridview1.DataBind();
4

2 に答える 2

8

これを試して

<%# Eval("EmpType") == "Contract" ? "XXX" : Convert.ToString(Eval("EmpID"))%>

それ以外の

 <%# Eval("EmpID")%>
于 2012-05-30T06:37:19.580 に答える
3

次の作品

 <asp:TemplateField HeaderText="EmpID">
                <ItemTemplate>
                    <%# Convert.ToString(Eval("EmpType")) == "Contract" ? "XXX" : Convert.ToString(Eval("EmpID"))%>

                    <asp:Button ID="Button1" runat="server" Text="Button" 
                    Visible='<%# Eval("EmpType") == "Contract" ? true : false %>' />

                </ItemTemplate>
            </asp:TemplateField>

関連している:

行番号は、Get GridView Selected Row Values using Page Previous Pageに従って取得できます。

CommandArgument="<%# ((GridViewRow)Container).RowIndex %>"
于 2012-05-30T09:32:50.340 に答える