UI功能:我有GridView
幾列。最重要的列是PcCode,它顯示每行的值爲string
。在asp:GridView單元中單擊鏈接按鈕不會觸發OnRowCommand事件
預計:當我點擊該PcCode列的一行中的一個單元格時,應該顯示另一個GridView
。但是,當我嘗試爲單元格使用asp:LinkButton
時,事情不起作用。當單擊GridView
單元格中的asp:LinkButton
時,RowCommand
不會被觸發。我在哪裏做錯事?預期功能可以實現哪種方式?提前感謝幫助新手。
在下面的代碼中,我試圖獲得RowIndex
並將其傳遞給CommandArgument
並使用CommandName
。
行被選中後,我需要選擇行的值作爲一個字符串,並用列表項比較顯示的.aspx代碼
<asp:GridView ID="_UIProfitcenterTotalGridView" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AllowPaging="True" PageSize="22" ShowFooter="True" AutoGenerateColumns="False"
DataKeyNames="ProfitcenterCode" EnableViewState="False"
OnRowDataBound="_UIProfitcenterTotalGridView_RowDataBound"
OnPageIndexChanging="_UIProfitcenterTotalGridView_PageIndexChanging"
OnRowCommand="_UIProfitcenterTotalGridView_OnRowCommand">
<Columns>
<asp:TemplateField HeaderText="PcCode" InsertVisible="False"
ShowHeader="False" SortExpression="ProfitcenterCode" FooterText="Total" FooterStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:LinkButton ID="_UIPCCodeLinkButton" runat="server" Text='<%# Eval("ProfitcenterCode") %>'
CommandName="Select"
CommandArgument='<%# ((GridViewRow) Container).RowIndex %>'>
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
...
後面的代碼aspx.cs
protected void _UIProfitcenterTotalGridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Select")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = _UIProfitcenterTotalGridView.Rows[index];
string ProfitcenterCode = _UIProfitcenterTotalGridView.DataKeys[_UIProfitcenterTotalGridView.SelectedIndex].Values["ProfitcenterCode"].ToString();
}
}
一個新的GridView。
試過
使用Link_Button_Click(對象發件人,EventArgs e)和下述但失敗了。
保護無效_UIProfitcenterTotalGridView_RowCommand(對象發件人,GridViewCommandEventArgs E) { 如果(e.CommandName == 「選擇」) {串ProfitcenterCode =((GridViewRow)(((LinkButton的)e.CommandSource).NamingContainer)) .Cells [2]。文本; }}
我一直在尋找如何選擇行值形成的一個LinkButton click.I在GridView試圖linkButton_Click事件,它不承認,因爲它是唯一的客戶端檢查。我需要回發到服務器,對不起,我對VB沒有任何線索。我只需要知道我做這件事的方式是否正確。如果不是,那麼哪種方式是正確的? LinkButton_Click事件或OnRowCommand事件? – shaz 2013-03-06 19:40:21
您可以輕鬆地將c#輕鬆轉換爲vb.net(或vb.net轉換爲c#)。 http://converter.telerik.com/。它看起來像你設置的方式,你將需要使用點擊事件。您需要將事件處理程序添加到鏈接按鈕。我發佈一個版本在C# – jason 2013-03-06 19:49:03
這是否意味着我需要同時使用linkButton_Click()和OnRowCommand()?但是,使用_Click事件會導致編譯器錯誤消息:CS1061:'ASP.displaycountries_aspx'不包含'_UIPCCodeLinkButton_Click'的定義,並且沒有找到接受類型爲「ASP.displaycountries_aspx」的第一個參數的擴展方法「_UIPCCodeLinkButton_Click」缺少使用指令或程序集引用?) – shaz 2013-03-06 20:16:14