2011-08-05 36 views
0

我有一個傳統的asp.net 3.5應用程序。我需要將一個字段綁定到CssClass,以便我可以通過jquery使用它。LinkBut​​ton - 將字段綁定到ToolTip或CSSClass

基本上,在數據網格中,有2個按鈕。按鈕一可見,按鈕二不可見。點擊按鈕之一,我想執行操作,然後使按鈕二可見並隱藏按鈕一。我怎樣才能做到這一點?我只是需要在正確的方向踢...

<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

對於服務器標籤沒有形成明確的錯誤,嘗試這樣的事情:

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 "; 
    } 
} 
+0

感謝您的幫助。 –

+0

這對我不起作用 –

+0

蒂姆,我稍後再嘗試一下,並會相應更新。 –