DataGrid with validator

B

BEN

Hi,

I want to add a custom validator to a dataGrid's boundcolumn. I use
datagrid's "edit, update, cancel" button to do. But I cannot find a method
to add the validator to boundcolumn.

In other way, I try to use TemplateColumn and EditItemTemplate with custom
validator. But I cannot bind the value to each corresponding column. All
values in the column are the same. The code is shown as below.

<asp:BoundColumn DataField="CustomerID" SortExpression="CustomerID"
HeaderText="CustomerID"></asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="EmployeeID"
SortExpression="EmployeeID" HeaderText="EmployeeID"></asp:BoundColumn>
<asp:BoundColumn DataField="Freight" SortExpression="Freight"
HeaderText="Freight"></asp:BoundColumn>
<asp:TemplateColumn SortExpression="OrderDate" HeaderText="OrderDate">
<ItemTemplate>
<%# DataBinder.Eval(DataSet11,
"Tables[Orders].Defaultview.[0].OrderDate", "{0:d}") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=TextBox1 runat="server" Text='<%#
DataBinder.Eval(DataSet11, "Tables[Orders].OrderDate", "{0:d}") %>'>
</asp:TextBox>
<asp:CustomValidator id=CustomValidator2 runat="server"
ErrorMessage='<%# DataBinder.Eval(DataSet11,
"Tables[Orders].DefaultView.[0].OrderDate", "{0:d}")
%>'>*</asp:CustomValidator>
</EditItemTemplate>
</asp:TemplateColumn>


What is the best way to validate a value in dataGrid? Or use other server
control?

Thanks in advance.
 
S

Scott Mitchell [MVP]

You have to use a TemplateColumn if you want to add validators for your
editing interface.

Try the following syntax for your EditItemTemplate:

<asp:TextBox ... Text='<%# DataBinder.Eval(Container.DataItem,
"ColumnName")' />

Container.DataItem returns the "record" bound to the particular row, so
you want to use that to get the column record, and not the DataSet class
like you're doing now.

hth


Hi,

I want to add a custom validator to a dataGrid's boundcolumn. I use
datagrid's "edit, update, cancel" button to do. But I cannot find a method
to add the validator to boundcolumn.

In other way, I try to use TemplateColumn and EditItemTemplate with custom
validator. But I cannot bind the value to each corresponding column. All
values in the column are the same. The code is shown as below.

<asp:BoundColumn DataField="CustomerID" SortExpression="CustomerID"
HeaderText="CustomerID"></asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="EmployeeID"
SortExpression="EmployeeID" HeaderText="EmployeeID"></asp:BoundColumn>
<asp:BoundColumn DataField="Freight" SortExpression="Freight"
HeaderText="Freight"></asp:BoundColumn>
<asp:TemplateColumn SortExpression="OrderDate" HeaderText="OrderDate">
<ItemTemplate>
<%# DataBinder.Eval(DataSet11,
"Tables[Orders].Defaultview.[0].OrderDate", "{0:d}") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=TextBox1 runat="server" Text='<%#
DataBinder.Eval(DataSet11, "Tables[Orders].OrderDate", "{0:d}") %>'>
</asp:TextBox>
<asp:CustomValidator id=CustomValidator2 runat="server"
ErrorMessage='<%# DataBinder.Eval(DataSet11,
"Tables[Orders].DefaultView.[0].OrderDate", "{0:d}")
%>'>*</asp:CustomValidator>
</EditItemTemplate>
</asp:TemplateColumn>


What is the best way to validate a value in dataGrid? Or use other server
control?

Thanks in advance.


--

Scott Mitchell
(e-mail address removed)
http://www.4GuysFromRolla.com

* When you think ASP.NET, think 4GuysFromRolla.com!
 
B

BEN

Thx Scott. It works.

Scott Mitchell said:
You have to use a TemplateColumn if you want to add validators for your
editing interface.

Try the following syntax for your EditItemTemplate:

<asp:TextBox ... Text='<%# DataBinder.Eval(Container.DataItem,
"ColumnName")' />

Container.DataItem returns the "record" bound to the particular row, so
you want to use that to get the column record, and not the DataSet class
like you're doing now.

hth


Hi,

I want to add a custom validator to a dataGrid's boundcolumn. I use
datagrid's "edit, update, cancel" button to do. But I cannot find a method
to add the validator to boundcolumn.

In other way, I try to use TemplateColumn and EditItemTemplate with custom
validator. But I cannot bind the value to each corresponding column. All
values in the column are the same. The code is shown as below.

<asp:BoundColumn DataField="CustomerID" SortExpression="CustomerID"
HeaderText="CustomerID"></asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="EmployeeID"
SortExpression="EmployeeID" HeaderText="EmployeeID"></asp:BoundColumn>
<asp:BoundColumn DataField="Freight" SortExpression="Freight"
HeaderText="Freight"></asp:BoundColumn>
<asp:TemplateColumn SortExpression="OrderDate" HeaderText="OrderDate">
<ItemTemplate>
<%# DataBinder.Eval(DataSet11,
"Tables[Orders].Defaultview.[0].OrderDate", "{0:d}") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=TextBox1 runat="server" Text='<%#
DataBinder.Eval(DataSet11, "Tables[Orders].OrderDate", "{0:d}") %>'>
</asp:TextBox>
<asp:CustomValidator id=CustomValidator2 runat="server"
ErrorMessage='<%# DataBinder.Eval(DataSet11,
"Tables[Orders].DefaultView.[0].OrderDate", "{0:d}")
%>'>*</asp:CustomValidator>
</EditItemTemplate>
</asp:TemplateColumn>


What is the best way to validate a value in dataGrid? Or use other server
control?

Thanks in advance.


--

Scott Mitchell
(e-mail address removed)
http://www.4GuysFromRolla.com

* When you think ASP.NET, think 4GuysFromRolla.com!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,994
Messages
2,570,223
Members
46,814
Latest member
SpicetreeDigital

Latest Threads

Top