Выражение привязки данных в GridView - PullRequest
2 голосов
/ 07 августа 2020

Можно ли добавить выражение привязки данных для ValidationGroup в ASP. NET GridView в пользовательском элементе управления?

Код:

<asp:GridView ID="grdData" runat="server" Width="100%">
    <Columns>
        <asp:TemplateField ShowHeader="False">
             <FooterTemplate>
                   <asp:ImageButton ValidationGroup="Validation<%# ServerSidePublicProperty%>" ID="lbInsert" runat="server" CausesValidation="True" CommandArgument="Insert" CommandName="Insert"  ></asp:ImageButton>
              </FooterTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

У меня есть несколько экземпляров пользовательский элемент управления на странице, поэтому мне нужно добавить уникальное значение для ValidationGroup, используя ServerSidePublicProperty.

1 Ответ

2 голосов
/ 13 августа 2020

Да, это так. См. Демо ниже. Но в основном вы просто используете выражение DataBinding Expression <%# %>. В этой демонстрации 2 столбца имеют разные ValidationGroups, поэтому каждая кнопка в нижнем колонтитуле проверяет только этот столбец.

<asp:GridView ID="GridView100" runat="server" AutoGenerateColumns="false" ShowFooter="true" Visible="true" Width="100%">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>

                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("DBColumnA") %>'></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ValidationGroup='<%# "Validation_" + ServerSidePublicProperty1 %>' ControlToValidate="TextBox1" ErrorMessage="Error1"></asp:RequiredFieldValidator>
          
            </ItemTemplate>
            <FooterTemplate>

                <asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup='<%# "Validation_" + ServerSidePublicProperty1 %>'/>

            </FooterTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>

                <asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("DBColumnB") %>'></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ValidationGroup='<%# "Validation_" + ServerSidePublicProperty2 %>' ControlToValidate="TextBox2" ErrorMessage="Error2"></asp:RequiredFieldValidator>

            </ItemTemplate>
            <FooterTemplate>

                <asp:Button ID="Button2" runat="server" Text="Button" ValidationGroup='<%# "Validation_" + ServerSidePublicProperty2 %>'/>

            </FooterTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
...