我有一个用Asp.Net编程的网站,并使用ListView显示数据。数据来自LinqDataSource。
在我的EditItemTemplate中,我有一个CheckBoxList,它包含:
<asp:CheckBoxList runat="server" ID="TypeCheckBoxList" RepeatColumns="2">
<asp:ListItem Value="128">6.-10. klasse<br />Norddjurs vejleder</asp:ListItem>
<asp:ListItem Value="64">6.-10. klasse<br />Syddjurs vejleder</asp:ListItem>
<asp:ListItem Value="32">Gået ud af skolen<br/>Norddjurs vejleder</asp:ListItem>
<asp:ListItem Value="16">Gået ud af skolen<br/>Syddjurs vejleder</asp:ListItem>
<asp:ListItem Value="8">Ekstra støtte<br/>Norddjurs vejleder</asp:ListItem>
<asp:ListItem Value="4">Ekstra støtte<br />Syddjurs vejleder</asp:ListItem>
<asp:ListItem Value="2">Kontakt</asp:ListItem>
<asp:ListItem Value="1">Om os<br />Medarbejdere</asp:ListItem>
</asp:CheckBoxList>我的数据库中有一个名为Type的列,它是一个tinyint。因此,我可以说(byte)Eval("Type")。
但是我如何将我的Eval(“类型”)数据绑定到CheckBoxList,以便如果Eval(“类型”)是3,那么最后两项将被选中?
我尝试设置一个隐藏值,它绑定到类型,然后在CheckBoxList OnLoad中设置选定的项目。但那并不管用。
发布于 2009-09-23 06:51:49
这就是实现方法,通过将隐藏值绑定到类型,但是在ListView的ItemDataBound事件上。
所以这个事件看起来就像这样:
protected void ListViewId_ItemDataBound (object sender, ListViewItemEventArgs e)
{
HiddenField hdfType = (HiddenField)e.Item.FindControl("hdfType");
CheckBoxList TypeCheckBoxList = (HiddenField)e.Item.FindControl("TypeCheckBoxList");
// and you put the hidden just for EditItem and do:
if (hdfType != null)
foreach (ListItem item in TypeCheckBoxList.Items)
if (int.Parse(item.Value) < int.Parse(hdfType.Value))
item.Selected = true;
}(所有这些都是我自己写的,所以可能会有一些小错误)
发布于 2009-09-22 06:44:09
首先,您应该像这样编写一个javascript函数
function Selected(value,type)
{
if(value<type)
return true;
else
return false;
}
<asp:ListItem Value="32" Selected= javascript:function Selected(32,Eval("Type"))>Gået ud af skolen<br />Norddjurs vejleder</asp:ListItem>
<asp:ListItem Value="16" Selected= javascript:function Selected(16,Eval("Type")>Gået ud af skolen<br />Syddjurs vejleder</asp:ListItem> 可能需要稍加修改才能最终确定it..major focus on Selected attribute
https://stackoverflow.com/questions/1458390
复制相似问题