2011-02-24 4 views
2

자, 여기 도움이 필요합니다. 내 데이터베이스 AgileFactors 테이블에 다음 필드가 있습니다 : AgileFactorID, 이름 및 설명. 확인란을 사용하여 DataTextField로 이름을 바인딩하고 AgileFactorID를 DataValueField로 바인딩합니다. 내가하고 싶은 일은 db의 Description 필드를 각 체크 박스 옆에 표시 할 정보 아이콘을 가리 키기위한 툴팁으로 사용하는 것입니다. 아래 코드를 살펴보십시오. 지금은 span 태그 내에서 긴 문자열을 전달하고 있는데 이는 무의미합니다. 아무도 날 도구 설명이 데이터베이스에서 검색되도록 도와 줄 수 있습니까? 미리 많은 감사드립니다!CheckBox ToolTip 데이터베이스

"SELECT Name, AgileFactorID, Description FROM AgileFactors" 

agile_factors.DataSource = ds2; 
agile_factors.DataTextField = "Name"; 
agile_factors.DataValueField = "AgileFactorID"; 
agile_factors.DataBind(); 


protected void agilefactors_DataBound(object sender, EventArgs e) 
{ 

    var checkBox = sender as CheckBoxList; 
    if (checkBox != null) 
    { 

     foreach (ListItem listItem in checkBox.Items) 
     { 

      listItem.Text = string.Format("{0} <span class='link'><a href='javascript: void(0)'><font face='verdana,arial,helvetica' size='2'><img src='{1}' Height='15' Width='15' /></font><span><b>Project Duration:</b><br/>Ideally, the project should be close to 6 months: much shorter means less iterations, and much longer tends towards long term planning.</span></a></span>", listItem.Text, GetImageFor(listItem.Text)); 

     } 
    } 
} 

private string GetImageFor(string text) 
{ 

    // return image url for check box based on text. 
    switch (text) 
    { 
     case "Project Duration": return "images/iicon.gif"; 
     case "Customer Involvement": return "images/iicon.gif"; 
     case "Acceptance of Change": return "images/iicon.gif"; 
     case "Team Size": return "images/iicon.gif"; 
     case "Skill of Team": return "images/iicon.gif"; 
     case "Organisational and Reporting Structure": return "images/iicon.gif"; 
     case "Process": return "images/iicon.gif"; 
     case "Documentation Requirements": return "images/iicon.gif"; 
     case "Layout of Workspace": return "images/iicon.gif"; 
     case "Empowered Team": return "images/iicon.gif"; 
     default: return null; 
    } 
} 

답변

1

GetImageFor 함수와 마찬가지로 "GetTooltip"에 다른 함수를 만듭니다. 다른 필드와 마찬가지로 툴팁을 당겨 툴팁 속성에 지정하십시오.

편집 당신은 정말 모든 코드를

, 당신이 할 일은 그것을 할 것입니다. 나는 스스로를 할 수 있고 여기에서 그것을 보여 주었기 때문에 당신을 위해 데이터베이스 측을하지 않을 것이다.

는하지만, 여기에 툴팁을 추가 당신은 갈 :

여기
int i = 0; 

      foreach(ListItem l in this.CheckBoxList1.Items) 
      { 
       i++; 
       l.Attributes["title"] = "Tooltip " + i.ToString(); 
      } 

은 결과의 스크린 샷이다. enter image description here

+0

어떻게 할 수 있습니까? 나는 그것을 크게 감사 할 것입니다 ... – user618616

+0

정말이 하나에 당신의 도움이 필요합니다. 나는이 방법을 사용하는 것이 갈 길이라고 생각한다. 솔직히 DB에서 설명을 읽는 방법을 모르겠다. 나에게 보여 주시겠습니까? – user618616

0

당신이 필요로하는 형식, 그러나 여기 당신은 간다 - 당신은 당신이 무슨 해결하기 위해 필요 해요,하지만이 도움이 될

protected void agilefactors_DataBound(object sender, EventArgs e) 
{ 
    var checkBox = sender as CheckBoxList; 
    if (checkBox != null) 
    { 
     foreach (ListItem listItem in checkBox.Items) 
     {     
      listItem.Text = string.Format("{0} <span class='link'><a href='javascript: void(0)'><font face='verdana,arial,helvetica' size='2'><img src='{1}' Height='15' Width='15' alt='{2}' /></font><span><b>Project Duration:</b><br/>Ideally, the project should be close to 6 months: much shorter means less iterations, and much longer tends towards long term planning.</span></a></span>", listItem.Text, GetImageFor(listItem.Text), GetToolTip(listItem.Value)); 
     } 
    } 
} 

private string GetToolTip(string value) 
{ 
    var x = (from y in ds2.AsEnumerable() 
      where y["AgileFactorID"] == value 
      select y["description"]).FirstOrDefault(); 

    return x.ToString(); 
} 

하나의 방법.

+0

listitem 클래스의 속성을 사용하고 title 속성을 할당하는 것이 더 쉬울까요? – JonH

+0

물론 링크에 텍스트가 필요한 경우에 대비하여 필자가 가지고 있던 것을 고수하고 다시 쓰지 않으려 고 노력했다. – TheGeekYouNeed