Неверное выражение «попробуй» - PullRequest
0 голосов
/ 16 января 2019

PolicyPersonID или PolicyMemberID будет параметром в GetInsuranceCompanyName(). Но PolicyPersonID или PolicyMemberID зависит от списка объектов, привязанных к представлению сетки. Если это список членов политики, там будет PolicyMemberID, а PolicyPersonID - и наоборот.

Я пробовал оператор if, но поскольку он PolicyPersonID или PolicyMemberID, оператор if на самом деле не работает.

<div class="row">
    <div class="col-md-12">
        <asp:GridView ID="gvCustomerView" runat="server" AllowPaging="True" AllowSorting="true" AutoGenerateColumns="False" CssClass="table table-striped table-bordered table-hover"
            OnPageIndexChanging="gvCustomerView_PageIndexChanging" PageSize="10">
            <Columns>
                <asp:TemplateField HeaderText="Customer Name">
                    <ItemTemplate>
                        <asp:Label ID="lblCustomerName" runat="server" Text='<%# GetCustomerName(Eval("InvoiceMasterID")) %>' ForeColor="Black"></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:BoundField DataField="MembershipNo" HeaderText="Membership Number" />

                <asp:TemplateField HeaderText="Insurance Company">
                    <ItemTemplate>
                        <asp:Label ID="lblInsuranceCompany" runat="server" Text='<%# try { GetInsuranceCompany(Eval("PolicyPersonID")); } catch (Exception) { GetInsuranceCompany(Eval("PolicyMemberID")); } %>' ForeColor="Black"></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:BoundField DataField="PolicyNumber" HeaderText="Policy Number" />

                <asp:TemplateField HeaderText="Currency Type And Rate">
                    <ItemTemplate>
                        <asp:Label ID="lblCurrencyTypeAndRate" runat="server" Text='<%# GetCurrencyTypeAndRate(Eval("InvoiceMasterID")) %>' ForeColor="Black"></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </div>
</div>

Если кто-то может объяснить, что означает ошибка с этим:

Text='<%# try { GetInsuranceCompany(Eval("PolicyPersonID")); } catch (Exception) { GetInsuranceCompany(Eval("PolicyMemberID")); } %>'

1 Ответ

0 голосов
/ 16 января 2019

Токен <%# оценивает одиночное выражение . Он не может обрабатывать блоки try / catch или другие сложные операторы.

Я бы вместо этого создал код GetInsuranceCompanyOrDefault (имя зависит от вас) в коде, который выполняет эту логику, и вызвал бы этот метод из разметки.

В качестве примечания, создание исключений - это дорогой способ ветвления - если есть способ узнать, не удастся ли GetInsuranceCompany до , вызвать метод, который будет более дешевым способом определить, какой вход для использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...