ValidatorCalloutExtender 不显示在 Gridview 中

发布于 2024-11-14 17:41:05 字数 398 浏览 2 评论 0原文

标题本身就说明了问题,但这就是情况。 我有一个带有 2 个网格视图的页面。 第一个用于搜索您想要使用的产品。这些文章可以添加到其他gridview中。 第二个网格视图包含所有带有文本弓的选定项目,用户可以在其中更改他们想要使用的数量。

现在问题来了,我在文本框中添加了一个验证器,以确保金额​​不高于库存中的可用金额。

我将 ValidatorCalloutExtender 添加到此验证器中。每当验证发生时,都不会显示该消息。验证器可以工作,因为在我将金额更改为正确的值之前我无法进一步操作。

我用来自定义 ValidatorCalloutExtender 的 css 类适用于我的所有其他页面。网格视图中未使用它的地方。

当不在 gridview 的 editTemplate 中使用时,有什么方法可以使其工作吗?

The title speaks for itself but here is the situation.
I have a page with 2 gridviews.
The first one is used to search products you want use. These articles can be added to the other gridview.
This second gridview contains all the selected items with a textbow where the user can change the amount they want to use.

Now comes the problem, I added a valdiator to the textbox which makes sure that the amount isn't higher than the amount which is available in the stock.

I added the ValidatorCalloutExtender to this validator. Whenever the validation is caused the message isn't displayed. The validator works because I can't go further untill I change the amount to the right value.

The css class I used to customize the ValidatorCalloutExtender works on all my other pages. where it isn't used in a gridview.

Is there any way to make this work when not used in the editTemplate of the gridview?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

め可乐爱微笑 2024-11-21 17:41:05

我假设它由于 验证组。它对于所有 GridView-Row 应该是唯一的。例如,这可以通过使用 GridView 的 RowDataBound 事件以编程方式设置它:

protected void GridView1_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
      if (e.Row.RowType == DataControlRowType.DataRow)
      {
            TextBox tbx = (TextBox)e.Row.FindControl("MyTextBox");
            RequiredFieldValidator rfv = (RequiredFieldValidator)e.Row.FindControl("MyReq");
            string validationGroupText = "ValidationTest" + (e.Row.DataItemIndex + 1).ToString();
            tbx.ValidationGroup = validationGroupText;
            rfv.ValidationGroup = validationGroupText;
      }
}

I'm assuming that it is not working because of the ValidationGroup. It should be unique for all GridView-Rows. This could be achieved for example by using the GridView's RowDataBound event to set it programmatically:

protected void GridView1_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
      if (e.Row.RowType == DataControlRowType.DataRow)
      {
            TextBox tbx = (TextBox)e.Row.FindControl("MyTextBox");
            RequiredFieldValidator rfv = (RequiredFieldValidator)e.Row.FindControl("MyReq");
            string validationGroupText = "ValidationTest" + (e.Row.DataItemIndex + 1).ToString();
            tbx.ValidationGroup = validationGroupText;
            rfv.ValidationGroup = validationGroupText;
      }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文