.net 使用gridview+bootstrap模态框

沉默之剑TAO 2017-12-19 04:58:33
.net 使用gridview+bootstrap模态框,怎样取gridview某列值放在模态框的input里,一下是自己写的,没有效果

html代码:

<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 + "')");
}

}
...全文
434 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdfgrtyu 2017-12-26
  • 打赏
  • 举报
回复
驴唇不对马嘴,用gridview还用什么bootstrap
  • 打赏
  • 举报
回复
属性名字写错了,应该写
                Button btn = (Button)gvin.Rows[index].FindControl("edit");
                var data_id = btn.Attributes["啦啦"];
自定义了一个叫做 “啦啦”的属性,你在 html 源代码中就能看到 <input type="button"> 这个 element 上多出来了“啦啦”属性,而 asp.net 控件可以使用 Attributes[...] 来获取自己定义的属性。
  • 打赏
  • 举报
回复
如果放到4、5年前我不会说、但是现在我会不得不说“web服务器端的这种一遍遍刷新的编程方式,跟纯粹前端编程格格不入,令人烦恼”了。当你深入到asp.net 服务器端编程,又要灵活用到前端,无端端的增加了许多无谓的学习成本。其实连 asp.net mvc 的服务器端界面编程代码,都不应该学,都是荒废了前端开发者的时间了。 不过还是回到你的这个 asp.net 控件来说,其实你可以为控件绑定好业务数据id。例如

   <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........
这种拼字符串的做法,终究是相当令人烦恼的。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧