asp.net 中的datagrid的控制按钮如何使用啊?

时间:2022-03-06 16:18:32
请问在web程序中如何使用超连接按钮呢?比如:选择、编辑、删除、添加等。
是否需要编写额外的代码,还是由系统自动配置的。
我使用的开发工具是vs.net。
谢谢。

6 个解决方案

#1


up

#2


每个按钮都对应DataGrid的相应事件
要自己写响应代码

#3


应该自己写OnClick事件处理代码。

#4


绑定列
 <asp:BoundColumn 
     DataField="datetime"     字段名
     HeaderText="时间"       列表头
     HeaderImagerUrl="">     显示于列页眉中的图片,此图片会取代HeaderText的文本
</asp:BoundColumn>
 
如果“自动创建列”为true,则绑定列先显示,接着显示自动列,而且自动生成的列不会被加入到columns集合中。
 
 
超级链接列
<asp:HyperLinkColumn 
     Text="文本"         //各列显示相同的文本,此时DataTextField优先                  
     DataTextField="代码"      //绑定的字段名
     DataTextFormatString=""   //来自定义DataTextField的显示格式
     
     NavigateUrl="url"                //所有列使用同一url
     DataNavigateUrlField="codeId"   //URL字段变量,即传递的变量值,有时和DataTextField同
     DataNavigateUrlFormatString="WebForm2.aspx?code={0}" URL格式字符串,GET方式传递的字符串
     Target="_blank" >      //打开链接打开的位置或方式
</asp:HyperLinkColumn>


 
按钮列
 
<Columns>
  普通按钮
  <asp:ButtonColumn 
  Text="所有列统一按钮名"   //所有列统一按钮名
  DataTextField="持股名称"   //绑定字段
  CommandName="btn">       //
  HeaderText="操作">        //列表头
  </asp:ButtonColumn>
  
  选择按钮  
  <asp:ButtonColumn 
  Text="选择" 
  DataTextField="持股名称" 
  CommandName="Select">
  </asp:ButtonColumn>
   
  编辑按钮 
  <asp:EditCommandColumn 
  ButtonType="LinkButton" 
  UpdateText="更新" 
  CancelText="取消" 
  EditText="编辑">
  </asp:EditCommandColumn>
   
  删除按钮  
  <asp:ButtonColumn 
  Text="删除" 
  ButtonType="PushButton" 
  CommandName="Delete">
  </asp:ButtonColumn>
    
</Columns>
 
CommandName设置在DataGrid1_ItemCommand()事件中
   获取同一行中哪个按钮被点击:   string s=e.CommandName;
 
//默认是linkbutton,也必须是linkbutton

 
单击按钮首先响应 DataGrid1_ItemCommand 事件 
  private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
 
   TableRow tr=e.Item;  //得到操作的当前行,存入控件
   string code=tr.Cells[1].Text;  //丛控件再得到单元格的文本
   string time=tr.Cells[2].Text;
 
   TableCell cell1=e.Item.Cells[1];  //这样也可以取得单元格的值,存入控件
 
   Server.Transfer("WebForm2.aspx?code="+code+" &or time="+time);
  }
 
接着不同按钮响应不同事件:
编辑
 private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   this.DataGrid1.EditItemIndex=e.Item.ItemIndex;
   this.datashow();
  }
 
更新
  private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   //得到主键列的值
   int i=(int)this.DataGrid1.DataKeys[e.Item.ItemIndex]; 
或 string ii=(string)this.DataGrid1.DataKeys[e.Item.ItemIndex];
   根据主键,用单元格的数据更新主键对应的纪录
   //写update语句
  
  }
 
取消
  private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   this.DataGrid1.EditItemIndex=-1;
   this.datashow();
  }
 
注意:可以将主键绑定列设为只读;
 
 
 
删除
   //应首先设置DataKeyField属性为主键列
  private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
  
    //得到主键列的值
   int i=(int)this.DataGrid1.DataKeys[e.Item.ItemIndex];
或 string ii=(string)this.DataGrid1.DataKeys[e.Item.ItemIndex];
    //写删除语句,
   
  }
 
 
当在到服务器发送之间,在数据列表控件中选择不同的项时,引发 SelectedIndexChanged 事件
也可通过int i2 =(int)this.DataGrid1.DataKeys[this.DataGrid1.SelectedIndex];得到主键值
 
DataKeyField 是一个字段,他的所有键值内容被填入DataKeys集合中,通过DataKeys[]来去某条记录的主键值

#5


up

#6


up

#1


up

#2


每个按钮都对应DataGrid的相应事件
要自己写响应代码

#3


应该自己写OnClick事件处理代码。

#4


绑定列
 <asp:BoundColumn 
     DataField="datetime"     字段名
     HeaderText="时间"       列表头
     HeaderImagerUrl="">     显示于列页眉中的图片,此图片会取代HeaderText的文本
</asp:BoundColumn>
 
如果“自动创建列”为true,则绑定列先显示,接着显示自动列,而且自动生成的列不会被加入到columns集合中。
 
 
超级链接列
<asp:HyperLinkColumn 
     Text="文本"         //各列显示相同的文本,此时DataTextField优先                  
     DataTextField="代码"      //绑定的字段名
     DataTextFormatString=""   //来自定义DataTextField的显示格式
     
     NavigateUrl="url"                //所有列使用同一url
     DataNavigateUrlField="codeId"   //URL字段变量,即传递的变量值,有时和DataTextField同
     DataNavigateUrlFormatString="WebForm2.aspx?code={0}" URL格式字符串,GET方式传递的字符串
     Target="_blank" >      //打开链接打开的位置或方式
</asp:HyperLinkColumn>


 
按钮列
 
<Columns>
  普通按钮
  <asp:ButtonColumn 
  Text="所有列统一按钮名"   //所有列统一按钮名
  DataTextField="持股名称"   //绑定字段
  CommandName="btn">       //
  HeaderText="操作">        //列表头
  </asp:ButtonColumn>
  
  选择按钮  
  <asp:ButtonColumn 
  Text="选择" 
  DataTextField="持股名称" 
  CommandName="Select">
  </asp:ButtonColumn>
   
  编辑按钮 
  <asp:EditCommandColumn 
  ButtonType="LinkButton" 
  UpdateText="更新" 
  CancelText="取消" 
  EditText="编辑">
  </asp:EditCommandColumn>
   
  删除按钮  
  <asp:ButtonColumn 
  Text="删除" 
  ButtonType="PushButton" 
  CommandName="Delete">
  </asp:ButtonColumn>
    
</Columns>
 
CommandName设置在DataGrid1_ItemCommand()事件中
   获取同一行中哪个按钮被点击:   string s=e.CommandName;
 
//默认是linkbutton,也必须是linkbutton

 
单击按钮首先响应 DataGrid1_ItemCommand 事件 
  private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
 
   TableRow tr=e.Item;  //得到操作的当前行,存入控件
   string code=tr.Cells[1].Text;  //丛控件再得到单元格的文本
   string time=tr.Cells[2].Text;
 
   TableCell cell1=e.Item.Cells[1];  //这样也可以取得单元格的值,存入控件
 
   Server.Transfer("WebForm2.aspx?code="+code+" &or time="+time);
  }
 
接着不同按钮响应不同事件:
编辑
 private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   this.DataGrid1.EditItemIndex=e.Item.ItemIndex;
   this.datashow();
  }
 
更新
  private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   //得到主键列的值
   int i=(int)this.DataGrid1.DataKeys[e.Item.ItemIndex]; 
或 string ii=(string)this.DataGrid1.DataKeys[e.Item.ItemIndex];
   根据主键,用单元格的数据更新主键对应的纪录
   //写update语句
  
  }
 
取消
  private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   this.DataGrid1.EditItemIndex=-1;
   this.datashow();
  }
 
注意:可以将主键绑定列设为只读;
 
 
 
删除
   //应首先设置DataKeyField属性为主键列
  private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
  
    //得到主键列的值
   int i=(int)this.DataGrid1.DataKeys[e.Item.ItemIndex];
或 string ii=(string)this.DataGrid1.DataKeys[e.Item.ItemIndex];
    //写删除语句,
   
  }
 
 
当在到服务器发送之间,在数据列表控件中选择不同的项时,引发 SelectedIndexChanged 事件
也可通过int i2 =(int)this.DataGrid1.DataKeys[this.DataGrid1.SelectedIndex];得到主键值
 
DataKeyField 是一个字段,他的所有键值内容被填入DataKeys集合中,通过DataKeys[]来去某条记录的主键值

#5


up

#6


up