我在网上找了半天没找到解决办法,故向各位高手求教!//GridView前台显示主要代码
<asp:GridView ID="GridViewPageFront" runat="server" AutoGenerateColumns="False"
OnRowEditing="GridViewPageFront_RowEditing" OnRowUpdating="GridViewPageFront_RowUpdating"
OnRowCancelingEdit="GridViewPageFront_RowCancelingEdit" OnSelectedIndexChanging="GridViewPageFront_SelectedIndexChanging">
//...
<asp:BoundField HeaderText="页面ID" DataField="PageID" ReadOnly="True" />
<asp:BoundField HeaderText="页面路径" DataField="path" ReadOnly="True"/>
<asp:BoundField HeaderText="页面描述" DataField="Pdes"/>
<asp:CommandField HeaderText="选择" ShowSelectButton="True" ButtonType="Button" EditText="选择"/>
<asp:CommandField HeaderText="修改" ShowEditButton="True" ButtonType="Button" EditText="编辑"/>
//...
</asp:GridView>//绑定GridView的相关代码
string sql = "select * from pages ";
conn = new SqlConnection(ConnString);
SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
DataSet dataSet = new DataSet();
conn.Open();
adapter.Fill(dataSet, "pages");
GridViewPageFront.DataSource = dataSet;
GridViewPageFront.DataKeyNames = new string[] { "PageID" };
GridViewPageFront.DataBind();
conn.Close();//点击更新按钮
protected void GridViewPageFront_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
conn = new SqlConnection(ConnString);
string sql = "update pages set Pdes='"
+ ((TextBox)(GridViewPageFront.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "' where PageID='" + Convert.ToInt32(GridViewPageFront.DataKeys[e.RowIndex].Value) + "'";
//问题就出现在这一行,GridViewPageFront.Rows[e.RowIndex].Cells[2].Controls[0]
//而Convert.ToInt32(GridViewPageFront.DataKeys[e.RowIndex].Value)可以得到值
command = new SqlCommand(sql, conn);
conn.Open();
command.ExecuteNonQuery();
conn.Close();
GridViewPageFront.EditIndex = -1;
//重新绑定省略
}报错:指定的参数已超出有效值的范围,不知道怎么解决,请高手指教!
<asp:GridView ID="GridViewPageFront" runat="server" AutoGenerateColumns="False"
OnRowEditing="GridViewPageFront_RowEditing" OnRowUpdating="GridViewPageFront_RowUpdating"
OnRowCancelingEdit="GridViewPageFront_RowCancelingEdit" OnSelectedIndexChanging="GridViewPageFront_SelectedIndexChanging">
//...
<asp:BoundField HeaderText="页面ID" DataField="PageID" ReadOnly="True" />
<asp:BoundField HeaderText="页面路径" DataField="path" ReadOnly="True"/>
<asp:BoundField HeaderText="页面描述" DataField="Pdes"/>
<asp:CommandField HeaderText="选择" ShowSelectButton="True" ButtonType="Button" EditText="选择"/>
<asp:CommandField HeaderText="修改" ShowEditButton="True" ButtonType="Button" EditText="编辑"/>
//...
</asp:GridView>//绑定GridView的相关代码
string sql = "select * from pages ";
conn = new SqlConnection(ConnString);
SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
DataSet dataSet = new DataSet();
conn.Open();
adapter.Fill(dataSet, "pages");
GridViewPageFront.DataSource = dataSet;
GridViewPageFront.DataKeyNames = new string[] { "PageID" };
GridViewPageFront.DataBind();
conn.Close();//点击更新按钮
protected void GridViewPageFront_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
conn = new SqlConnection(ConnString);
string sql = "update pages set Pdes='"
+ ((TextBox)(GridViewPageFront.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "' where PageID='" + Convert.ToInt32(GridViewPageFront.DataKeys[e.RowIndex].Value) + "'";
//问题就出现在这一行,GridViewPageFront.Rows[e.RowIndex].Cells[2].Controls[0]
//而Convert.ToInt32(GridViewPageFront.DataKeys[e.RowIndex].Value)可以得到值
command = new SqlCommand(sql, conn);
conn.Open();
command.ExecuteNonQuery();
conn.Close();
GridViewPageFront.EditIndex = -1;
//重新绑定省略
}报错:指定的参数已超出有效值的范围,不知道怎么解决,请高手指教!
解决方案 »
- 怎么给datepicker里指定的一个日期换背景颜色
- asp.net
- .NET读取XML
- 访问DotNet网站时地址中出现乱码的问题解决。关键字:.net,url乱码,网站部署,Cookieless,sessionState
- 哪个访问MySQL数据库的DLL是最权威的?
- 请问有没有人用过,金质打印通,是不是支持WEB打印呢?WEB打印方面有哪些好的介绍下?50分
- 为什么会提示 无法将类型“string”隐式转换为“System.Web.UI.WebControls.Unit”
- 如何配置Web 园艺
- 用正则表达式提取网页中的特定内容。。高分
- 更新DataGrid记录时 字段值取不出来((TextBox)e.Item.Cells[1].Controls[0]).Text
- asp.net调用两台同步数据库数据问题
- accordion控件不能折叠默认只打开第一栏
能再详细说说吗?我在网上也看到了FindControl,但对我来说,可以用吗?
参考代码
http://dotnet.aspx.cc/file/Add-Delete-Update-Edit-Data-With-Paging-in-GridView.aspx
if(!IsPostBack)
{
BindData();
}
protected void gv_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
gv.EditIndex = e.RowIndex;
int id = int.Parse(gv.DataKeys[e.RowIndex].Value.ToString());
string str = ((TextBox)gv.Rows[e.RowIndex].FindControl("txt")).Text.Trim();
gv.EditIndex = -1;
BindData();
}