aspx頁面:
<asp:GridView ID="gvDataInfo" runat="server" AutoGenerateColumns="False" OnRowCommand="gvDataInfo_RowCommand">
<Columns>
<asp:BoundField DataField="job_id" HeaderText="編号" />
<asp:TemplateField>
<ItemTemplate>
<asp:DropDownList ID="ddlTest" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlTest_SelectedIndexChanged">
<asp:ListItem Value="-1">-請選擇-</asp:ListItem>
<asp:ListItem Value="0">測試1</asp:ListItem>
<asp:ListItem Value="1">測試2</asp:ListItem>
<asp:ListItem Value="2">測試3</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:CheckBox ID="cbTest" runat="server" AutoPostBack="True" OnCheckedChanged="cbTest_CheckedChanged" />
<asp:BoundField DataField="job_desc" HeaderText="職位描述" />
<asp:BoundField DataField="min_lvl" HeaderText="最小值" />
<asp:BoundField DataField="max_lvl" HeaderText="最大值" />
<asp:TemplateField HeaderText="操作">
<asp:LinkButton ID="lbTestOne" runat="server" CommandName="one">RowCommand事件</asp:LinkButton>
<asp:LinkButton ID="lbTestCommand" runat="server" CommandName="two" OnCommand="lbTestCommand_Command">LinkButton的Command事件</asp:LinkButton>
<asp:LinkButton ID="lbTestClick" runat="server" OnClick="lbTestClick_Click">LinkButton的Click事件</asp:LinkButton>
</Columns>
</asp:GridView>
aspx.cs頁面:
/// <summary>
/// 行綁定事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gvDataInfo_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "one")
{
GridViewRow drv = (GridViewRow)((LinkButton)e.CommandSource).NamingContainer;
//GridViewRow drv = ((GridViewRow)(((LinkButton)(e.CommandSource)).Parent.Parent)); //上下兩種方式都可以
int index = drv.RowIndex;//擷取行号
Response.Write("<script>alert("+index+");</script>");//行号從0開始
}
}
/// LinkButton的Command事件
protected void lbTestCommand_Command(object sender, CommandEventArgs e)
LinkButton lb = (LinkButton)sender;
DataControlFieldCell dcf = (DataControlFieldCell)lb.Parent;
GridViewRow gvr = (GridViewRow)dcf.Parent;
int index = gvr.RowIndex;//擷取行号
Response.Write("<script>alert(" + index + ");</script>");//行号從0開始
/// LinkButton的Click事件
protected void lbTestClick_Click(object sender, EventArgs e)
GridViewRow gvr = (GridViewRow)((LinkButton)sender).NamingContainer;
/// DropDownList擷取目前行
protected void ddlTest_SelectedIndexChanged(object sender, EventArgs e)
DropDownList ddl = (DropDownList)sender;
GridViewRow gvr = (GridViewRow)ddl.NamingContainer;
/// CheckBox擷取目前行
protected void cbTest_CheckedChanged(object sender, EventArgs e)
CheckBox chk = (CheckBox)sender;
DataControlFieldCell dcf = (DataControlFieldCell)chk.Parent;