4
<asp:TemplateField HeaderText="Quantity">
    <ItemTemplate>
        <asp:Label ID="lbl_quantity" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"quantity") %>'>
        </asp:Label>

    </ItemTemplate>

    <EditItemTemplate>
        <asp:TextBox runat="server" ID="txtquantity" Width="90px" onkeypress="return validatenumerics(event);" Text='<%# DataBinder.Eval(Container.DataItem,"quantity") %>'></asp:TextBox>
        <asp:RequiredFieldValidator ID="RFquantity" runat="server" ControlToValidate="txtquntity" Display="None" ErrorMessage="This field is required value" ValidationGroup="quantity">
        </asp:RequiredFieldValidator>
        <ajaxToolkit:ValidatorCalloutExtender ID="VCquantity" runat="Server" TargetControlID="RFquantity"/>

    </EditItemTemplate>
</asp:TemplateField>

テキストボックスが空の場合、JavaScriptメッセージを表示したい..私はこのコードを試しました。検証の目的で必須フィールドの検証が追加されました。その後、「編集」ボタンが起動されません。助けてください。

これは、編集、更新、キャンセル、キャンセル ボタンのあるグリッドです。

  protected void gvproducts_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
    gvproducts.EditIndex = -1;
    grid();

}
protected void gvproducts_RowEditing(object sender, GridViewEditEventArgs e)
{
    gvproducts.EditIndex = e.NewEditIndex;
    grid();
}
protected void gvproducts_RowUpdating(object sender, GridViewUpdateEventArgs e)
{

    TextBox txtquantity = (TextBox)gvproducts.Rows[e.RowIndex].Cells[4].Controls[1];

    int st = Convert.ToInt32(gvproducts.DataKeys[e.RowIndex].Values[0].ToString());


    objsupplyPL.quantity = Convert.ToInt32(txtquantity.Text.ToString());

    objsupplyPL.sno = st;
    DataTable scmpurchase = new DataTable();
    scmpurchase = objsupplyBAL.updatepurchase(objsupplyPL);

    ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "UpdateDetails", "alert('Update Successful');", true);
    gvproducts.EditIndex = -1;
    grid();
}
4

2 に答える 2

1

あなたができることは、GridViewのすぐ上にShowMessageBoxとValidationGroupを含むValidationSummeryを追加することです

<asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="true" ShowSummary="false" ValidationGroup="quantity" />

TemplateField をこれに変更し (EnableClientScript=true を確認)、EditButton に同じ検証グループがあることを確認します。

<asp:TemplateField HeaderText="Quantity">
    <ItemTemplate>
        <asp:Label ID="lbl_quantity" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"quantity") %>' />
    </ItemTemplate>
    <EditItemTemplate>
        <asp:TextBox runat="server" ID="txtquantity" Width="90px" Text='<%# DataBinder.Eval(Container.DataItem,"quantity") %>' ValidationGroup="quantity"  />
        <asp:RequiredFieldValidator ID="RFquantity" runat="server" ControlToValidate="txtquantity" EnableClientScript="true"  Display="None" ErrorMessage="This field is required value" ValidationGroup="quantity" />
    </EditItemTemplate>
</asp:TemplateField>        
<asp:CommandField ShowEditButton="True" ValidationGroup="quantity" />
于 2013-10-17T11:06:03.430 に答える
1

クラスを追加してTextBox、jquery でクラス ファインダーを使用してコントロールを見つけるだけです。次に、TextBox.val()javascript 関数を使用して が空かどうかを確認できます。

于 2014-02-09T18:38:44.667 に答える