0

如何在面板内动态创建文本框和蒙版编辑扩展器。我的代码是这样的: 在 ASPX 页面中:

<asp:Repeater Id = "Repeater1" runat="server" DataSource="Function1" OnitemDataBound="ShowProducts_OntemDataBound">
<ItemTemplate>
<asp: Panel Id= "Panel1" runat="server">
<cc1:MaskedEditExtender Id="MskEdit" Mask="(999)-999-9999">
</cc1:MaskedEditExtender>
</asp:Panel>
</ItemTemplate>
</asp:Repeater>

在 Aspx.Cs 页面中

Private DataView Function1()
{
Dataview dv =new dataview();
return dv;
}

    Private void ShowProducts_OntemDataBound(object sender, RepeaterEventItem e)
{
//Consider For the First Iteration of the Repeater I am Creating a Simple Text Box Dynamically
Textbox txt = new textbox();
txt.Text = "8888888888";
txt.Id = "TextBox1";

//Consider For the Second Iteration of the Repeater I am Creating another TextBox and a 
Textbox txt1 = new textBox();
txt1.text="2223334444";
txt1.Id = "TextBox2";

MaskedEditExtender mskEdit = (MaskedEditExtender)e.Item.FindControl("MskEdit");
mskEdit.TargetControlId = txt1.Id;

Panel panel1 = (Panel)e.item.Findcontrol("Panel1");
panel1.Controls.Add(txt1);
}

运行上面的代码时,它给了我“MaskedEditExtender 的空引用异常”。请为此建议我一些方法。

4

1 回答 1

0

检查 e.ItemFindControl("MskEdit") 是否不为空,因为在页眉、页脚行中,它将是。这是代码:


if(e.Item.FindControl("MskEdit")!=null)
{
MaskedEditExtender mskEdit = (MaskedEditExtender)e.Item.FindControl("MskEdit"); mskEdit.TargetControlId = txt1.Id;
}
于 2010-03-27T13:41:07.343 回答