Как отобразить значение ресурса в столбце gridview, в зависимости от значения другого столбца? - PullRequest
1 голос
/ 02 ноября 2010

Вот что у меня есть (работает) :

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>                        
    <asp:BoundField HeaderText="Id" DataField="Id" SortExpression="Id">
    </asp:BoundField>
    <asp:BoundField HeaderText="Name" DataField="Name" SortExpression="Name">
    </asp:BoundField>
    <asp:TemplateField>                        
    <ItemTemplate>
        <asp:Label ID="Label1" runat="server" Text='<% $Resources: Resource, strYes %>' />
        <br />
        <asp:Label ID="Label2" runat="server" Text='<%# Equals("name1",Eval("Name")) %>' />
        <br />
        <asp:Label ID="Label3" runat="server" Text='<%# Eval("Name") %>' />
        <br />
    </ItemTemplate>
    </asp:TemplateField>
</Columns>
</asp:GridView>

То, что я хотел, это что-то вроде (не работает) :

<asp:Label ID="Label4" runat="server" Text='<% (Equals("a",Eval("Name"))) $Resources: Resource, strYes : $Resources: Resource, strNo  %>' />

но которого я не узнал, как заставить это работать!(Так, в зависимости от значения предыдущего столбца, покажите один или другой элемент ресурса).

Есть предложения по исправлению?Спасибо!

1 Ответ

2 голосов
/ 02 ноября 2010

Я думаю, что самый простой способ - использовать возвращаемое значение функции в качестве текста для вашей метки:

<asp:Label Text="<%# GetLabelText(Container.DataItem) %>" ID="Label1" runat="server" />

А затем в файле .cs

protected string GetLabelText(object dataItem) {
    DataRowView dataRowView = (DataRowView)dataItem;
    string name = (string)dataRowView.Row["Name"];
    return "some string with some logic";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...