62,046
社区成员
发帖
与我相关
我的任务
分享
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:Button runat="server" ID="edit" CommandArgument="<%# Container.DataItemIndex+1 %>" Text="Edit" CommandName="editLoc" CssClass="btn btn-primary" data-toggle="modal" data-target="#myModal" />
</ItemTemplate>
</asp:TemplateField>
function getGridViewValue(con_id, con_name, current_loc) {
$('#myModal').on('shown.bs.modal', function () {
$("#con_edit_id").val(con_id);
$("#con_edit_name").val(con_name);
$("#current_edit_loc").val(current_loc);
});
}
protected void gvin_RowCommand(object sender,GridViewCommandEventArgs e)
{
if (e.CommandName=="editLoc")
{
int index = Convert.ToInt32(e.CommandArgument.ToString());
Button btn = (Button)gvin.Rows[index].FindControl("edit");
btn.Attributes.Add("onclick", "getGridViewValue('" + gvin.Rows[index].Cells[0].Text + "','" + gvin.Rows[index].Cells[1].Text + "','" + gvin.Rows[index].Cells[2].Text + "')");
}
}
Button btn = (Button)gvin.Rows[index].FindControl("edit");
var data_id = btn.Attributes["啦啦"];
自定义了一个叫做 “啦啦”的属性,你在 html 源代码中就能看到 <input type="button"> 这个 element 上多出来了“啦啦”属性,而 asp.net 控件可以使用 Attributes[...] 来获取自己定义的属性。
<ItemTemplate>
<asp:Button runat="server" ID="edit" CommandArgument="<%# Container.DataItemIndex+1 %>" Text="Edit" CommandName="editLoc"
CssClass="btn btn-primary" data-toggle="modal" data-target="#myModal" 啦啦='<%# Eval("fid") %' />
</ItemTemplate>
这里假设 fid 是所绑定的数据的一个 key,那么你就可以在你的 btn 上直接获取自定义属性值 Button btn = (Button)gvin.Rows[index].FindControl("edit");
var data_id = btn.Attributes["fid"];
也就是说,你想绑定什么就绑定什么,然后获取它的值,进一步通过数据库、缓冲等等来查询此 fid 相关的数据。
gridview 的“某列值”你也可以继续通过 var c = sender as Control;
var row = c.NamingContainer as GridViewRow;
var lbl = row.FindControl("lbl1");
.....
var
这类方式来查找其它控件,然后获取其它控件的各种属性/值。
然而像"getGridViewValue('" + gvi........
这种拼字符串的做法,终究是相当令人烦恼的。