LinkBut​​ton - 将字段绑定到ToolTip或CSSClass

时间:2011-08-05 05:13:30

标签: asp.net datagrid linkbutton

我有一个传统的asp.net 3.5应用程序。我需要将一个字段绑定到CssClass,以便我可以通过jquery使用它。

基本上,在数据网格中,有2个按钮。按钮1可见,按钮2不可见。单击按钮1,我想执行操作,然后使按钮2可见并隐藏按钮1。我怎样才能做到这一点?我只需要向正确的方向踢一脚......

<asp:LinkButton ID="lnkDelete" runat="server" 
    ToolTip="Delete Order <%# DataBinder.Eval(Container.DataItem, "TransID")%>" 
    OnClientClick="return DeleteOrder();"                                                
    OnClick="OrderDelete" CommandArgument='<%# Eval("TransID")' 
    CssClass=""> 
    <asp:Image ID="Image1" runat="server" ImageUrl="~/images/icons/delete.gif"
        BorderStyle="None" />
</asp:LinkButton>

我在工具提示中的当前绑定会导致错误,“服务器标记格式不正确”。

OrderDelete后面的代码中,我可以禁用删除链接,但如何让其他按钮可见?

//delete indivisual order
protected void OrderDelete(object sender, EventArgs e)
{
    string transactionID = String.Empty;
    LinkButton lnkDelete = (LinkButton)sender;
    if (lnkDelete != null)
        transactionID = lnkDelete.CommandArgument;

    if (!String.IsNullOrEmpty(transactionID))
    {
        //do delete
    }
    //refresh results

}

1 个答案:

答案 0 :(得分:1)

对于服务器标签没有格式错误,请尝试以下方法:

ToolTip='<%# String.Format("Delete Order {0}",  DataBinder.Eval(Container.DataItem, "TransID")%>'

对于问题的第二部分,您的一些代码可能有助于为您提供更具体的答案,但代替这一点,如果您知道您所在的DataGrid的哪一行,您应该能够在该行中为第二个按钮执行FindControl并使其可见。

<强>更新

您可以尝试使用RowDataBound事件在代码隐藏中设置工具提示。像这样:

protected void gv1_RowDataBound(object sender, GridViewRowEventArgs e)
{

    if(e.Row.RowType == DataControlRowType.DataRow)
    {
        LinkButton btn = e.Row.FindContorl("lnkDelete") as LinkButton;

        // You'll need to retrieve the values you want to dynamically populate 
        // the ToolTip with from other controls in the row;
        // I don't know if you'd be able to use the DataSource or not, but you might.
        btn.ToolTip = "Delete Order "; 
    }
}