同様の問題が発生しました。 QAは、ユーザー設定用にセットアップしたDatGridで更新コマンドが起動していないと報告しました。 DataGridの外では、特定の設定が行われたときにのみ表示される2つの非表示の入力フィールドがありました。しかし、私のテストでは、クリックを更新すると、これらのフィールドがあるdivの全体的な高さが増えたことに気付きました。これらのフィールドの検証コントロールが発砲していました。
問題は確かに、検証コントロールのValidationGroup設定に関連しているようです。
私はEditCommandColumnをテンプレートフィールドに変換する必要はなく、単にEditItemTemplateのValidationコントロールとともにValidationGroup属性を追加するだけでした。以下のサンプルは、私のために働いた実装に基づいています:
<div class="row">
<div runat="server" id="divConfirm">
<div class="formfields float-off form-group">
<div class="col-xs-4 text-right">
<p class="align-middle">Field 1</p>
</div>
</div>
<div class="formfields float-off form-group">
<div class="col-xs-4">
<input runat="server" id="confirm1" name="confirm1" />
<!-- this control was firing prior to adding the validation group -->
<asp:RequiredFieldValidator runat="server" ID="valConfirmReq"
Display="Dynamic" ControlToValidate="confirm1"
ErrorMessage="*You must confirm etc. message">
</asp:RequiredFieldValidator>
</div>
</div>
</div>
</div>
<asp:DataGrid ID="DataGrid1" runat="server" OnEditCommand="DataGrid_EditCommand"
OnCancelCommand="DataGrid1_CancelCommand"
OnUpdateCommand="DataGrid1_UpdateCommand">
<Columns>
<asp:EditCommandColumn EditText="Edit" HeaderText="Edit"
UpdateText="Update" CancelText="Cancel" ValidationGroup="DataGrid1">
<%-- DataGrid code --%>
<asp:TemplateColumn>
<EditItemTemplate>
<asp:DropDownList ID="ddl1" runat="server"></asp:DropDownList>
<asp:RequiredFieldValidator ID="rfvDDL" runat="server"
ErrorMessage="*Please Select"
ValidationGroup="DataGrid1"
Display="Dynamic"
ControlToValidate="ddl1"
InitialValue="Select">
</asp:RequiredFieldValidator>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
私はそれを試してもまだ動作しません。有効な唯一の方法は、検証コントロールを削除することです。私は真剣に代替としてリストビューを見ている。最初のテストでは、ListViewはバリデータで分解されません。 – RichardB
ValidationGroup = 'GridView1'の名前にButtonとRequiredFieldValidatorコントロールの名前が似ていることを確認してください。 –
それも試しました。この時点で、私はListViewを使っています。あなたのお役に立っていただきありがとうございます – RichardB