簡體   English   中英

在Asp.Net的gridview中,MaskedEditExtender無法從第二行開始工作

[英]MaskedEditExtender is not working from 2nd line in gridview in Asp.Net

我的頁面上有一個gridview,有三列,一列代表數量,我需要將MaskEditExtender與簡單的TextBox一起使用,但是它僅在第一行上起作用,而從第二行開始,該文本框將顯示為沒有遮罩。

這是我的代碼:

<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>

原因是當Gridview渲染行時,每個行都包含帶有不同的自動生成ID的文本框,並且在MaskEditExtender的TargetControlID屬性中為您提供了固定的名稱。 因此,您需要使用RowDataBound事件將MaskEditExtender放置在每個文本框中。

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;
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM