2009-09-22 45 views
1

我有一个网站在Asp.Net中编程,并使用ListView显示数据。数据来自LinqDataSource。DataBound CheckBoxList

在我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> 

我有我的数据库列名为类型,它是一个TINYINT。因此我可以说(字节)评估(“类型”)。

但是,如何将我的Eval(“Type”)数据绑定到CheckBoxList,如果Eval(“Type”)是3,那么最后两个项目被选中?

我已经尝试设置一个隐藏的值绑定到类型,然后在CheckBoxList OnLoad设置选定的项目。但那没有用。

回答

3

这是做它的方式JavaScript函数,用隐藏的值绑定到Type,但在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; 
} 

(我写这一切从我的头,所以可能有一些小的失误)

+0

我会研究它:)但它只是为EditItem有一个复选框列表。不是所有的项目。 – 2009-09-23 06:57:48

+0

您只能将EditItem的HiddenField。 然后做所有的检查/后选择在括号: 如果(hdfType!= NULL){ ... } 它 – 2009-09-23 07:16:15

+0

肯定不会工作。非常感谢你! :) – 2009-09-23 15:33:57

0

首先,你应该这样写

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重点选择属性

+0

好吧,我会尽力的。但是,我希望服务器端解决方案更好。 – 2009-09-22 16:14:06

+0

我不认为它有效。你确定JavaScript在那个属性中工作吗? – 2009-09-22 16:25:54