在我的asp.net程序中用gridview组建绑定数据库来显示数据库中相应的内容。我选择了gridview组件的编辑功能,可以对每行数据进行编辑。
现在我想问的得到的功能是,当我们点击编辑,更新数据时,它会将进行更新的使用者也会相应的更改。
补充,这是一个系统网站,需要用户名才能登陆,用户名我放在了cookies中。能实现在点击更新后添加代码事件吗,该怎么做,谁能指导一下,谢谢。
现在我想问的得到的功能是,当我们点击编辑,更新数据时,它会将进行更新的使用者也会相应的更改。
补充,这是一个系统网站,需要用户名才能登陆,用户名我放在了cookies中。能实现在点击更新后添加代码事件吗,该怎么做,谁能指导一下,谢谢。
当然了。。Cookies也是可以的。。但是我个人觉得session比较便捷和安全。
将更新和编辑按钮所在的列转换为模板列,这时会在模板列中生成一个linkbutton控件,设置linkbutton的CommandArgument='<% #Eval("id")%>',这样就可以在后台的Editting事件中获取id了,后台获取string id = e.CommandArgument;
AutoGenerateColumns="False" OnRowUpdating="GridView1_RowUpdating">
<Columns>
<asp:BoundField DataField="Field1" HeaderText="字段1" />
<asp:BoundField DataField="Field2" HeaderText="字段2" />
<asp:BoundField DataField="Field3" HeaderText="字段3" />
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView><asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="xxxxxxxxx"
SelectCommand="SELECT * FROM [表名]"
UpdateCommand="UPDATE [表名] SET [Field1]=@Field1, [Field2]=@Field2, [Field3]=@Field3, [ModifiedUser]=@CurrentUser WHERE [ID]=@ID">
<UpdateParameters>
<asp:Parameter Name="Field1" Type="String" />
<asp:Parameter Name="Field2" Type="String" />
<asp:Parameter Name="Field3" Type="String" />
<asp:Parameter Name="CurrentUser" Type="String" />
</UpdateParameters>
</asp:SqlDataSource><script runat="server">protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
e.NewValues["CurrentUser"] = Request.Cookies["LoginUserName"]; // 假设当前登录的用户存放在名为LoginUserName的cookie中
}</script>
错误 2 “System.Web.UI.WebControls.GridViewUpdatedEventArgs”并不包含“RowIndex”的定义这个错误,好像在updated中不包含rowindex这个。有什么解决方法吗?
{
if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Visible = false;
}
} int _id= int.Parse(Gridview1.SelectedRow.Cells[0].Text.ToString()); //获取选择行的id
<asp:GridView ID="gvGoods" runat="server" Width="100%" AutoGenerateColumns="False"
CssClass="gridview" DataKeyNames="id"></>
protected void gvGoods_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int ID = Int32.Parse(gvGoods.DataKeys[e.RowIndex].Value.ToString());
}
TextBox textbox = (TextBox)GridView1.Rows[e.RowIndex].Cells[0].FindControl("id");
id = textbox.Text;