我在DataList控件中使用静态HTML控件来绑定数据,遇到个奇怪的问题,调试过程中的结果与最后输出到客户端时的HTML数据不一样,两个小时过去了都没查出是什么问题。。直接附图吧调试时数据返回结果都正常
输出到客户端的HTML代码
请大家帮我看下是什么问题,主要代码如下:
<asp:DataList ID="dlCategory" runat="server" RepeatColumns="5"
RepeatLayout="Flow" ItemStyle-Width="180" AlternatingItemStyle-Width="180"
DataKeyField="PermissionID" onitemdatabound="dlCategory_ItemDataBound"
onitemcreated="dlCategory_ItemCreated">
<ItemTemplate>
<input id='chkPermission_<%# Eval("PermissionID") %>' name="chkPermission" type="checkbox" value='<%# Eval("PermissionID") %>' <%= ischecked %> />
<label for='chkPermission_<%# Eval("PermissionID") %>'><%# Eval("Description") %></label>
</ItemTemplate>
</asp:DataList>
private DataTable _permissions;
protected string ischecked = "";......protected void dlCategory_ItemCreated(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
int iPerID = TypeParse.StrToInt(((DataList)sender).DataKeys[e.Item.ItemIndex], 0);
DataRow currentPermission = _permissions.Rows.Find(iPerID);
ischecked = (currentPermission == null) ? "" : "checked";
}
}
输出到客户端的HTML代码
请大家帮我看下是什么问题,主要代码如下:
<asp:DataList ID="dlCategory" runat="server" RepeatColumns="5"
RepeatLayout="Flow" ItemStyle-Width="180" AlternatingItemStyle-Width="180"
DataKeyField="PermissionID" onitemdatabound="dlCategory_ItemDataBound"
onitemcreated="dlCategory_ItemCreated">
<ItemTemplate>
<input id='chkPermission_<%# Eval("PermissionID") %>' name="chkPermission" type="checkbox" value='<%# Eval("PermissionID") %>' <%= ischecked %> />
<label for='chkPermission_<%# Eval("PermissionID") %>'><%# Eval("Description") %></label>
</ItemTemplate>
</asp:DataList>
private DataTable _permissions;
protected string ischecked = "";......protected void dlCategory_ItemCreated(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
int iPerID = TypeParse.StrToInt(((DataList)sender).DataKeys[e.Item.ItemIndex], 0);
DataRow currentPermission = _permissions.Rows.Find(iPerID);
ischecked = (currentPermission == null) ? "" : "checked";
}
}
页面中还有其他部分是正常的,有输出checked
public bool ischecked
{
get;set;
}