C# 复选框工具提示数据库
好的,我需要一些帮助。我的数据库中有一个表AgileFactors,它包含以下字段:AgileFactorID、Name和Description。我使用复选框列表将名称绑定为DataTextField,将AgileFactorID绑定为DataValueField。我想做的是使用数据库中的Description字段作为悬停时的工具提示,显示在每个复选框旁边的信息图标。请看下面我的代码。目前,我正在span标记中传递一个长字符串,这是毫无意义的。有人能帮我确保工具提示是从数据库中检索到的吗?非常感谢C# 复选框工具提示数据库,c#,asp.net,C#,Asp.net,好的,我需要一些帮助。我的数据库中有一个表AgileFactors,它包含以下字段:AgileFactorID、Name和Description。我使用复选框列表将名称绑定为DataTextField,将AgileFactorID绑定为DataValueField。我想做的是使用数据库中的Description字段作为悬停时的工具提示,显示在每个复选框旁边的信息图标。请看下面我的代码。目前,我正在span标记中传递一个长字符串,这是毫无意义的。有人能帮我确保工具提示是从数据库中检索到的吗?非常感
"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;
}
}
“从AgileFactors中选择名称、AgileFactorID和描述”
agile_factors.DataSource=ds2;
agile_factors.DataTextField=“Name”;
agile\u factors.DataValueField=“AgileFactorID”;
agile_factors.DataBind();
受保护的无效agilefactors_数据绑定(对象发送方、事件参数e)
{
var checkBox=发送方作为复选框列表;
如果(复选框!=null)
{
foreach(checkBox.Items中的ListItem ListItem)
{
listItem.Text=string.Format(“{0}”,listItem.Text,GetImageFor(listItem.Text));
}
}
}
私有字符串GetImageFor(字符串文本)
{
//基于文本返回复选框的图像url。
开关(文本)
{
案例“项目持续时间”:返回“images/iicon.gif”;
案例“客户参与”:返回“images/iicon.gif”;
案例“接受变更”:返回“images/iicon.gif”;
案例“团队规模”:返回“images/iicon.gif”;
案例“团队技能”:返回“images/iicon.gif”;
案例“组织和报告结构”:返回“images/iicon.gif”;
案例“处理”:返回“images/iicon.gif”;
案例“文件要求”:返回“images/iicon.gif”;
案例“工作区布局”:返回“images/iicon.gif”;
案例“授权团队”:返回“images/iicon.gif”;
默认值:返回null;
}
}
正如您有一个要获取图像的函数一样,创建另一个“GetTooltip”函数。
像拉其他字段一样拉工具提示,并将其指定给tooltip属性
编辑
你真的有所有的代码,你所要做的就是去做。我不会为你做数据库方面的工作,因为你自己可以做,你已经在这里演示过了
但要在此处添加工具提示,请执行以下操作:
int i = 0;
foreach(ListItem l in this.CheckBoxList1.Items)
{
i++;
l.Attributes["title"] = "Tooltip " + i.ToString();
}
下面是结果的屏幕截图。
根据需要设置格式,但现在您可以选择单程
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();
}
受保护的无效agilefactors_数据绑定(对象发送方,事件参数e)
{
var checkBox=发送方作为复选框列表;
如果(复选框!=null)
{
foreach(checkBox.Items中的ListItem ListItem)
{
listItem.Text=string.Format(“{0}”、listItem.Text、GetImageFor(listItem.Text)、GetToolTip(listItem.Value));
}
}
}
私有字符串GetToolTip(字符串值)
{
变量x=(从ds2.AsEnumerable()中的y开始)
其中y[“AgileFactorID”]==值
选择y[“description”]).FirstOrDefault();
返回x.ToString();
}
您需要修复现有的内容,但这应该会有所帮助。使用listitem类的属性并分配title属性不是更容易吗?当然-但我一直在努力坚持他所拥有的内容,如果他仍然需要链接中的文本等,我就不会重写。如果真的需要您的帮助,请在这方面。我认为使用这种方法是可行的。我真的不知道怎么读数据库里的描述,你能给我看看吗?