可以的,你要编辑datagrid的属性。用右键查看DATAGRID属性,有一项column (集合),进去看看就知道了
解决方案 »
- 关于动态增删改menu导航栏选项的问题,这个XML文件该怎么写啊??求救,很急~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- gridview 点击更新后,读到的字段还是编辑前的
- 大侠们求教 JS 光标定位问题
- 菜鸟问题:怎样绑定数据,打开网页变快?~~~~
- 求一思路,关于上传文件,
- 本来有一个网站用asp开发的,登陆时用cookies保存了客户信息,后来有一模块用.net 进行了开发,我想用.net 用登陆保存的cookies,但是不能
- 怎么启动一个ASPX文件的同时也启动另一个HTML文件 ? <script language="javascript">里面的值怎么用SESSION记住它 ?
- 添加数据到 数据库的问题(菜鸟级,分数不够了,请帮忙)
- ASP.NET为何动态编译页面类对象
- asp.net与linux
- 如何实现?
- datalist的用法?
</asp:BoundColumn>
<asp:BoundColumn DataField="content" HeaderText="内容">
<HeaderStyle Wrap="False" HorizontalAlign="Center" Height="40px" Width="15%" VerticalAlign="Middle">
</HeaderStyle>
<ItemStyle Height="40px">
</ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="note" HeaderText="备注">
<HeaderStyle Wrap="False" HorizontalAlign="Center" Height="40px" Width="8%" VerticalAlign="Middle">
</HeaderStyle>
<ItemStyle Height="40px">
</ItemStyle>
</asp:BoundColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" HeaderText="修改" CancelText="取消" EditText="修改">
<HeaderStyle HorizontalAlign="Center" Height="40px" Width="5%" VerticalAlign="Middle">
</HeaderStyle>
<ItemStyle Height="40px">
</ItemStyle>
</asp:EditCommandColumn>
<asp:ButtonColumn Text="删除" HeaderText="删除" CommandName="Delete">
<HeaderStyle HorizontalAlign="Center" Height="40px" Width="5%" VerticalAlign="Middle">
</HeaderStyle>
<ItemStyle Height="40px">
</ItemStyle>
</asp:ButtonColumn>
</Columns>
<asp:DataGrid
OnEditCommand ="DataGrid1_Edit"
OnUpdateCommand="DataGrid1_Update"
...>
再编写
DataGrid1_Edit、DataGrid1_Update事件。
eg:
public void DataGrid1_Edit(Object sender,DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex=e.Item.ItemIndex;
....;
}
我已经找到了这种方法。但是,但我点更新时更新不了。
应怎样写:OnUpdateCommand 才能保存。
还有 我如果将ButtonType="LinkButton" 改为ButtonType="pushButton",就不起作用了。
是这样吗??
private void myDataGrid_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
SqlConnection myConnection=new SqlConnection("server=localhost;uid=sa;pwd=; database=File"); string updateCmd="update users set USERID=@userid,password=@password,name=@name,department=@department,role=@role,email=@email,tel=@tel, restrain=@restrain where USERID=@userid"; SqlCommand myCommand=new SqlCommand(updateCmd,myConnection); myCommand.Parameters.Add
(new SqlParameter("@USERID",SqlDbType.NVarChar,10)); myCommand.Parameters["@userid"].Value=myDataGrid.DataKeys[e.Item.ItemIndex];
//myCommand.Parameters["@userid"].Value=((TextBox)e.Item.Cells[0].Controls[0]).Text; myCommand.Parameters.Add
(new SqlParameter("@password",SqlDbType.NVarChar,10)); myCommand.Parameters["@password"].Value=((TextBox)e.Item.Cells[1].Controls[0]).Text; myCommand.Parameters.Add
(new SqlParameter("@name",SqlDbType.NVarChar,10)); myCommand.Parameters["@name"].Value=((TextBox)e.Item.Cells[2].Controls[0]).Text; myCommand.Parameters.Add
(new SqlParameter("@department",SqlDbType.NVarChar,20)); myCommand.Parameters["@department"].Value=((TextBox)e.Item.Cells[3].Controls[0]).Text; myCommand.Parameters.Add
(new SqlParameter("@role",SqlDbType.NVarChar,20)); myCommand.Parameters["@role"].Value=((TextBox)e.Item.Cells[4].Controls[0]).Text; myCommand.Parameters.Add
(new SqlParameter("@email",SqlDbType.NVarChar,10)); myCommand.Parameters["@email"].Value=((TextBox)e.Item.Cells[5].Controls[0]).Text; myCommand.Parameters.Add
(new SqlParameter("@tel",SqlDbType.NVarChar,10)); myCommand.Parameters["@tel"].Value=((TextBox)e.Item.Cells[6].Controls[0]).Text; myCommand.Parameters.Add
(new SqlParameter("@restrain",SqlDbType.NVarChar,5)); myCommand.Parameters["@restrain"].Value=((TextBox)e.Item.Cells[7].Controls[0]).Text; try
{
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
myDataGrid.EditItemIndex=-1;
myCommand.Connection.Close();
message.Style["color"]="green";
message.Text="数据更新成功!";
BindGrid();
}
catch
{
message.Text="操作失败";
}
提示:
System.ArgumentOutOfRangeException: 索引超出范围。必须为非负并小于集合大小。参数名:index不知道为什么
注意:DATAGRID中,DataKeyField=USERID
可还是更新不了,调试时发现 ((TextBox)e.Item.Cells[1].Controls[0]).Text 的值
还是原来的(未修改之前的数据)
sqlConnection1.Open();
string jj=((TextBox)e.Item.Cells[2].Controls[0]).Text;
string kk=((TextBox)e.Item.Cells[1].Controls[0]).Text;
this.sqlUpdateCommand1.Parameters["@FirstName"].Value=jj;
this.sqlUpdateCommand1.Parameters["@LastName"].Value=kk;
this.sqlUpdateCommand1.Parameters["@Original_EmployeeID"].Value=DataGrid1.DataKeys[(int)e.Item.ItemIndex];
this.sqlUpdateCommand1.ExecuteNonQuery();
BindGrid();
}
就不能编辑吗?
直接拖到webfrom中设置他们的属性就可以用datagrid控件直接帮定数据了。