我对gridview中的按钮有疑问。正如标题所说,我设计了一个内部带有按钮的gridview。每当我触发按钮时,它总是在网格视图到达按钮事件之前绑定它。
说,onLoad
页面,我提取数据并将它们绑定到gridview,然后我想进行批量更新,这将由其中的按钮触发。如果我放!IsPostBack
,它永远不会触发按钮事件,这意味着它总是必须读取数据再将它们绑定到gridview然后执行按钮事件。
问题,我有大量数据,因此需要花费很多时间进行更新。我想知道是否有任何方法触发按钮事件而无需重新绑定 gridview?是不是因为gridview中的按钮所以有必要再次重新绑定才能读取按钮事件?
任何建议都会非常感激。
答案 0 :(得分:1)
为什么不使用RowCommand而不是onclick事件? 您可以向按钮添加命令名属性,以了解您需要执行的操作
查看下面的链接,只需用经典按钮替换ButtonField即可。不要忘记分配CommandName
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridviewcommandeventargs.aspx
答案 1 :(得分:1)
您不应该使用按钮事件,而应使用GridView.RowCommand事件。见here。如果您与Page_Load中的if (!IsPostBack)
检查结合使用,它应适用于您的方案。
答案 2 :(得分:1)
您的按钮必须由OnRowCommand
事件触发,! IsPostBack
不应阻止触发按钮
protected void GridView_RowCommand(object source, GridViewCommandEventArgs e)
{
if(e.CommandName=="Update")
{
// put your update code here
}
}
您可以使用ajax更新数据源,而无需重新绑定GridView并使用javascript更新您的UI。