0

我想知道是否可以在后面的代码中选择特定的 LinkBut​​ton 内部。

我想做的是,当单击按钮时,按钮内的跨度应该更改类。我知道如果我在跨度上设置一个 ID,我可以更改它,但我想知道是否可以通过按钮作为发件人来获取跨度。

按钮:

<asp:LinkButton ID="btnAttestMonday" runat="server" CssClass="btn btn-success  btn-xs" OnClick="btnAttest_Click" CausesValidation="false"><span class="glyphicon glyphicon-ok" runat="server"></span></asp:LinkButton>

后面的代码:

    protected void btnChangeAttest_Click(object sender, EventArgs e)
{
    LinkButton btn = (LinkButton)sender;

    switch (btn.CommandName)
    {
        case "Attest":
            updateAttestInDB(btn.CommandArgument.ToString(), true);
            btn.CommandName = "RemoveAttest";
            break;
        case "RemoveAttest":
            updateAttestInDB(btn.CommandArgument.ToString(), false);
            btn.CommandName = "Attest";
            break;
    }      
}

我希望跨度改变开关盒内的类。

提前致谢!

4

1 回答 1

0

使跨度为a Label,您就完成了。然后你只需要通过ID. 但是,如果您不希望这样,您可以通过LinkButton's Controls-collection 访问它:

protected void btnAttest_Click(object sender, EventArgs e)
{
    LinkButton btn = (LinkButton)sender;
    var span = (HtmlGenericControl) btn.Controls[0];
    span.Attributes["class"] = "newCssClass";
    // ...
}

当然,如果您将来更改布局,则在运行时会失败。

于 2015-09-29T08:08:19.100 回答