动态更改某些数据绑定数据列表项的光标样式?

时间:2016-04-22 20:23:35

标签: javascript c# css asp.net asp.net-4.0

我有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项中动态更改光标样式?

感谢。

2 个答案:

答案 0 :(得分:1)

我会在这里做几件事:

添加以下CSS类:

.noEmpId {
    cursor: not-allowed;
}

.validEmpId {
  cursor: pointer;
}

然后,我假设你想在LinkBut​​ton上使用光标样式,所以在你的LinkBut​​ton中做这样的事情:

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

我希望这能回答你的问题。

话虽如此,我不确定这是否能完全达到预期效果。仅仅因为光标为“否”并不意味着您无法点击某个项目。