2011-12-01 30 views
0
HtmlAnchor[] anchorToConvert = new HtmlAnchor[]{ 
    clickHere, 
leavePage}; 

Button[] buttonToConvert = new Button[]{ 
    login, 
register}; 

i = 0; 
for (i = 0; i < anchorToConvert.Length; i++) 
{ 
    DataRow[] result = ds.Tables[0].Select("htmlControl LIKE '" + anchorToConvert[i].ID.ToString() + "'"); 

    if (result.Length > 0) 
    { 
     anchorToConvert[i].InnerHtml = result[0]["phrase"].ToString(); 
    } 
} 
i = 0; 
for (i = 0; i < buttonToConvert.Length; i++) 
{ 
    DataRow[] result = ds.Tables[0].Select("htmlControl LIKE '" + buttonToConvert[i].ID.ToString() + "'"); 

    if (result.Length > 0) 
    { 
     buttonToConvert[i].Text = result[0]["phrase"].ToString(); 
    } 
} 

我有两个需要循环访问的html元素数组,并使用元素id属性从数据库中选择内容。而不是必须创建两个数组并循环遍历它们,有没有办法让我可以创建一个更通用的数组,可以同时包含按钮和锚点?C#中的HTML元素

+0

如何熟悉C#你是谁?您可以创建一个具有两个字段'HtmlAnchor'和'Button'的类,然后创建该类的数组。 – climbage

+0

我只使用它2周....必须从PHP转换网站 – callumander

回答

3

你可以用列表,检查列表控件的类型,当你通过循环:

List<Control> ctrl = new List<Control>(); 
HtmlAnchor anchor = new HtmlAnchor(); 
anchor.ID = "myAnchor"; 
ctrl.Add(anchor); 

Button btn = new Button(); 
btn.ID = "MyBtn"; 

ctrl.Add(btn); 

foreach (Control c in ctrl.ToList()) 
{ 
    if (c is Button) 
    { 
     // Do Something 
    } 
} 
1

HtmlAnchorButton都从Web.UI.Control继承(尽管不是直接的)。

如果这是数组的类型,则可以将这两种类型(HtmlAnchorButton)分配给数组。