我有datalist
绑定到datatable
,如下所示:
EmpId RoomNum
A230 201
A235 202
null 203
F520 204
null 205
正如您所看到的,一些RoomNums没有EmpId。这些是将光标样式更改为“手”的项目。带有EmpId的datalist项目将具有“No”光标样式。这仅适用于datalist。
这是我的数据主义者:
<asp:DataList ID="DataListThumb" runat="server" RepeatColumns="5" >
<ItemTemplate>
<div style="padding: 8px;width:72px;height:72px">
<asp:LinkButton id="LinkButton1" runat="server" OnClientClick='<%# "return ShowRoom(" + Eval("RoomNum") + ");" %>'>
<div style='width:72px;height:72px; background-image:url(<%# Eval("image_path") %>)'>
<div style="width: 72px; padding-top: 3px; overflow: hidden;">
<div style="text-align: left; width:72px; float:left;">
<asp:Label ID="Label1" CommandName="cmd_RoomNum" CommandArgument='<%# Eval("RoomNum")%>'
runat="server" Text='<%# Eval("RoomNum")%>' Font-Size="11pt"></asp:Label>
</div>
</div>
</div>
</asp:LinkButton>
</ItemTemplate>
</asp:DataList>
那么如何在datalist项中动态更改光标样式?
感谢。
答案 0 :(得分:1)
我会在这里做几件事:
添加以下CSS类:
.noEmpId {
cursor: not-allowed;
}
.validEmpId {
cursor: pointer;
}
然后,我假设你想在LinkButton上使用光标样式,所以在你的LinkButton中做这样的事情:
<asp:LinkButton CssClass='<%# Eval("EmpId") == null ? "noEmpId" : "validEmpId" %>' id="LinkButton1"></asp:LinkButton>
这并不能让任何人点击按钮。如果你想这样做那么你需要像......那样的东西。
<asp:LinkButton OnClientClick='<%# Eval("EmpId") == null ? "return false;" : "return ShowRoom(" + Eval("RoomNum") + ");" %>' id="LinkButton1"></asp:LinkButton>
答案 1 :(得分:0)
您可以通过css控制光标的外观。您可以在css中定义以下两个类。
.cursor-hand { cursor: pointer }
.cursor-no { cursor: not-allowed }
然后您可以有条件地将课程应用于您的项目。这有点令人费解。但您可以在代码中定义一个方法,如下所示:
public string GetStyle(string empId)
{
return empId == null ? "cursor-hand" : "cursor-no";
}
然后在你的ItemTemplate
某个地方,不确定哪个元素。
<div class='<%# GetStyle(Eval("empId")) %>' ...> ... </div>
我希望这能回答你的问题。
话虽如此,我不确定这是否能完全达到预期效果。仅仅因为光标为“否”并不意味着您无法点击某个项目。