0

I have a gridview on my page, there is three columns, one is for quantity, i need to use MaskEditExtender with simple TextBox, but it is working only on first row, from second row the textbox is appearing without mask.

here is my code :

<Columns>                        
<asp:TemplateField HeaderText="Qty">
    <ItemTemplate>

        <asp:TextBox ID="txtQuan" runat="server" ValidationGroup="MKE" MaxLength="5" 
              style="text-align:right" width="100px" Text='<%# BIND("QUAN") %>' />
        <ajaxToolkit:MaskedEditExtender ID="txtQuan_MaskedEditExtender" runat="server"
            Enabled="True" Mask="99999" TargetControlID="txtQuan" />

    </ItemTemplate>
</asp:TemplateField>

Haider Ali Wajihi
  • 2,756
  • 7
  • 51
  • 82

2 Answers2

0

Reason is that When Gridview Render row each Row contain textbox with deffferent autogenerated id and you are given a fixed name in TargetControlID Property in MaskEditExtender . so you need to use RowDataBound Event to Put MaskEditExtender in each textbox....

Raghubar
  • 2,768
  • 1
  • 21
  • 31
0
using AjaxControlToolkit;                                                              protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            TextBox txt = (TextBox)e.Row.FindControl("txtQuan");
            MaskedEditExtender mxt = (MaskedEditExtender)e.Row.FindControl("MaskedEditExtender1");
            mxt.TargetControlID = txt.ID;
        }
    }
Raghubar
  • 2,768
  • 1
  • 21
  • 31