大部分的功能采用通過模板列實現,為了方便選擇和刪除使用了它自帶的功能和方法,很容易就能實現,沒發現有什麼大問題;但是在部署到服務器中,發現選擇顯示的不是文字,而是“select”,也沒查出是什麼原因,後面不得不改為通過模板列實現。
在改為模板列實現時,發現gv_sjy_RowCommand事件裡不能通過e.CommandArgument獲取行的索引值,只能另想途徑了,發現有兩種方法可以做到:
第一種:
復制代碼 代碼如下:
<asp:LinkButton ID="btnSelect" runat="server" CausesValidation="False" CommandName="Select" Text="選擇" CommandArgument="<%# ((GridViewRow)Container).RowIndex %>"></asp:LinkButton>
添加紅色部分,後台才可以通過int rowIndex = Convert.ToInt32(e.CommandArgument);獲取行的索引值
第二種:
復制代碼 代碼如下:
protected void gv_sjy_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Select")
{
GridViewRow gvRow = (GridViewRow)(((LinkButton)e.CommandSource).Parent.Parent);
int rowIndex = gvRow.RowIndex;//獲取選擇的行索引
txtSjyxh.Text = dt2.Rows[rowIndex]["sjyxh"].ToString();
}
}