ValidatorCalloutExtender不在Gridview中显示

时间:2011-06-08 11:48:03

标签: asp.net gridview ajaxcontroltoolkit validation

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

现在出现了问题,我在文本框中添加了一个valdiator,确保金额不高于股票中可用的金额。

我将ValidatorCalloutExtender添加到此验证器中。每当进行验证时,都不会显示消息。验证器有效,因为我不能再进一步,直到我将金额更改为正确的值。

我用来自定义ValidatorCalloutExtender的css类适用于我的所有其他页面。它没有在gridview中使用。

如果没有在gridview的editTemplate中使用,有没有办法让这个工作?

1 个答案:

答案 0 :(得分:2)

由于ValidationGroup,我假设它无法正常工作。对于所有GridView-Rows,它应该是唯一的。这可以通过使用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;
      }
}