2012-02-28 38 views
0

我正在做在C#.NET中的一个工作簿创建者(使用Visual Studio的)改变CSS类为对象发件人控制

本书是从文字部分和问题部分建设。

该问题的所有答案都在文本中,用户需要点击正确的答案。如果他是对的,那么这个词变得绿色,如果他错了,它会变成红色。

我用LINKBUTTON创建clickeable文本,我给链接按钮CssStyle类和用户点击单词后,我想改变这个链接到不同的类的类。

这是我使用用于创建linksbutton的代码:

public void createQusetion(Panel lefttext, Panel question, string text, string   
    questionText, string answer) 
{ 

    string[] Qbuttonstext = text.Split(' '); 
    _numberWords = Qbuttonstext.Length; 
    for (int i = 0; i < _numberWords; i++) 
    { 
     LinkButton answerButton = new LinkButton(); 
     if (Qbuttonstext[i] == answer) 
     { 
      answerButton.ID = "answer" + i; 

     } 
     else 
     { 
      answerButton.ID = "word" + i.ToString(); 
     } 
     answerButton.Text = Qbuttonstext[i].ToString() + " "; 
     answerButton.CssClass = "textbuttonB4"; 

     answerButton.Click += new EventHandler(checkAnswer); 

     lefttext.Controls.Add(answerButton); 
    } 


} 

和用于检查这样的问题:

private void checkAnswer(object sender, System.EventArgs e) 
{ 
    for (int i = 0; i < _numberWords; i++) 
    { 
     if (((Control)sender).ID.ToString() != null) 
     { 
      if (((Control)sender).ID.ToString() == "answer" + i.ToString()) 
      { 
       ((Control)sender).CssClass = "textbuttonRight"; 

      } 
      else 
      { 
       ((Control)sender).CssClass = "textbuttonwrong"; 

      } 
     } 
    } 
} 

的VS2010给我misatake为:((对照)发送器) .CssClass。

什么是正确的方法?

+0

为什么不把它作为'LinkBut​​ton'? – Shai 2012-02-28 11:24:13

+0

CSSClass是WebControl的一个属性,因此转换为 - http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webcontrol.cssclass.aspx – stuartd 2012-02-28 11:25:27

回答

1

您可以通过这种方式进行类型无关的控制。它将为所有具有Id和CssClass属性的控件运行。

private void checkAnswer(object sender, System.EventArgs e) 
    { 
     var cssClass = sender.GetType().GetProperty("CssClass"); 
     var id = sender.GetType().GetProperty("ID").GetValue(sender, null); 
     for (int i = 0; i < _numberWords; i++) 
     { 
      if (id!=null) 
      { 
       if (id.ToString() == "answer" + i.ToString()) 
       { 
        cssClass.SetValue(sender, "textbuttonRight", null); 
       } 
       else 
       { 
        cssClass.SetValue(sender, "textbuttonRight", null); 
       } 
      } 
     } 
    } 
+0

谢谢你,这是非常有用的 – 2012-02-28 14:56:53