Button btnAddrecord = (Button)sender;
GridViewRow gvr =(GridViewRow)btnAddrecord.NamingContainer;
if (btnAddrecord.CommandName == "onAddMaterial")
回答
定義按鈕,在你的網格視圖的標記和CommandName
值分配給該按鈕,像這樣:
<asp:GridView ID="GridView1" AutoGenerateColumns="False" runat="server"
OnRowCommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField HeaderText="Add Record">
<ItemTemplate>
<asp:Button ID="btnAddRecord"
CommandArgument="<%# ((GridViewRow)Container).RowIndex %>"
CommandName="AddRecord" runat="server" Text="Add" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
現在,在您的代碼隱藏,你可以處理OnRowCommand
事件和AddRecord
命令,就像這樣:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "AddRecord")
{
// Get index of row passed as command argument
int index = Convert.ToInt32(e.CommandArgument.ToString());
// Your logic here
}
}
這對我來說只是好奇「<%#((GridViewRow)Container).RowIndex%>」語法的工作原理。 – JoeManiaci
@JoeManiaci - <%#'被稱爲嵌入式代碼塊語法,在這種特殊的語法中,它將綁定到GridView的每一行的索引(通過RowIndex屬性)進行數據綁定控制。然後,當用戶單擊特定行中的Add按鈕時,CommandName用於確定用戶想要執行的命令(在單個網格視圖行中可能有多個命令),最後使用CommandArgument獲取用戶點擊的確切行的索引。這基本上允許您獲取用戶單擊的行的上下文。 –
太棒了,謝謝。 – JoeManiaci
確定公司運作的按鈕命令名稱..裏面的GridView
2.然後
if e.commandname="yourcommandname"
{
//your code..
}
<!--We use onrowcommand for getting the selected row -->
<asp:GridView runat="server" ID="gvTest" AutoGenerateColumns="False" OnRowCommand="gvTest_OnRowCommand" >
<Columns>
<asp:TemplateField HeaderText="BookId" >
<ItemTemplate>
<asp:Label runat="server" ID="lblBookId" Text='<%# Bind("[BookId]") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" ID="txtBookId" Text='<%# Bind("[BookId]") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:TemplateField>
<asp:TemplateField HeaderText="Options">
<ItemTemplate>
<asp:Button runat="server" ID="btnDelete" CommandArgument="<%# Container.DisplayIndex %>" CommandName="IsDelete" Text="Delete"></asp:Button>
</ItemTemplate>
</asp:TemplateField>
//Code Behind
protected void gvTest_OnRowCommand(object sender, GridViewCommandEventArgs e)
{
try
{
//getting rowindex which we have selected by using CommandArgument
int rowindex = Convert.ToInt32(e.CommandArgument);
if (e.CommandName == "IsDelete")
{
int bkid = gvTest.Rows[rowindex].Cells[0].FindControl("BookId");
//call a method to delete book using the bkid
}
}
catch (Exception ex)
{
Response.Write(ex);
}
}
- 1. 按鈕點擊事件後,rowdatabound發射網格視圖
- 2. 獲取按鈕點擊事件的網格視圖
- 3. 網格視圖鏈接按鈕不點擊點擊asp.net?
- 4. JQuery對話框:如何找到按鈕點擊事件中的點擊按鈕
- 5. 如何處理自定義視圖的按鈕點擊事件?
- 6. 如何從UITableViewRow按鈕點擊事件打開新視圖?
- 7. 如何處理圖片點擊按鈕點擊事件
- 8. 未找到按鈕點擊事件?
- 9. Extjs4按鈕點擊網格
- 10. 點擊按鈕加載表格視圖
- 11. 如何停止按鈕點擊事件
- 12. 如何禁用點擊事件按鈕?
- 13. 按鈕點擊事件刪除圖庫
- 14. 事件點擊按鈕
- 15. Flash按鈕點擊事件
- 16. 按鈕點擊事件
- 17. F#按鈕點擊事件
- 18. 按鈕點擊事件
- 19. Phonegap按鈕點擊事件
- 20. 按鈕點擊點擊事件兩次
- 21. 更改網格視圖頁上按鈕點擊C#Asp.net
- 22. 網格視圖按鈕傳遞數據通過點擊
- 23. 處理從大網格按鈕點擊事件?
- 24. AngularJS - 按鈕點擊包含在網格NG-click事件
- 25. 按鈕添加事件點擊事件
- 26. Android:通過Id查找視圖而無需點擊UI按鈕
- 27. 找不到按鈕點擊事件如何得到連線
- 28. 在按鈕點擊事件中的asp:repeater中查找控制
- 29. 點擊事件不會引發數據網格彈出按鈕上的按鈕
- 30. 如何綁定劍道網格上的按鈕單擊事件
請提供該問題的更多細節? –