У меня возникла проблема с реализацией редактируемого GridView с использованием ObjectDataSource на CodeBehind; Интересно, что недостающие кусочки мне нужно добавить в моем коде позади (события):Как обновить строку GridView ASP.NET с ObjectDataSource с кодом по программному адресу
ASPX Код:
<asp:GridView ID="grdPlayer" runat="server" AutoGenerateColumns="False"
AutoGenerateEditButton="true" AutoGenerateDeleteButton="true"
onrowediting="grdPlayer_RowEditing"
onrowcancelingedit="grdPlayer_RowCancelingEdit"
onrowupdating="grdPlayer_RowUpdating">
<Columns>
<asp:BoundField DataField="ID" Visible="false"/>
<asp:BoundField DataField="FirstName" HeaderText="First Name"
SortExpression="FirstName" />
<asp:BoundField DataField="LastName" HeaderText="LastName"
SortExpression="LastName" />
<asp:BoundField DataField="Age" HeaderText="Age"
SortExpression="Age" />
</Columns>
</asp:GridView>
ASPX.CS Код За:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
public partial class _Default : System.Web.UI.Page
{
ObjectDataSource dataSource = new ObjectDataSource();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dataSource.TypeName = "Cricket.CricketBL";
dataSource.UpdateMethod = "UpdatePlayer";
Parameter p1 = new Parameter("ID", DbType.Int32);
Parameter p2 = new Parameter("FName", DbType.String);
Parameter p3 = new Parameter("LName", DbType.String);
Parameter p4 = new Parameter("Age", DbType.Int32);
dataSource.UpdateParameters.Add(p1);
dataSource.UpdateParameters.Add(p2);
dataSource.UpdateParameters.Add(p3);
dataSource.UpdateParameters.Add(p4);
bindGridView();
}
}
#region Grid Events
protected void grdPlayer_RowEditing(object sender, GridViewEditEventArgs e)
{
grdPlayer.EditIndex = e.NewEditIndex;
}
protected void grdPlayer_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
grdPlayer.EditIndex = -1;
bindGridView();
}
protected void grdPlayer_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
grdPlayer.EditIndex = -1;
bindGridView();
}
#endregion
void bindGridView()
{
dataSource.SelectMethod = "GetAllPlayer";
dataSource.TypeName = "Cricket.CricketBL";
grdPlayer.DataSource = dataSource;
grdPlayer.DataBind();
}
}
- Где я должен поставить код UpdateMethod (в настоящее время в Page_Load)?
- Какие события следует реализовать в коде, чтобы измененная строка сетки вызывала UpdateMethod с помощью правильных NewValues?
- Когда я нажимаю ссылку «Редактировать», он не отображает GridView в режиме редактирования (текстовые поля и т. Д.); Я должен щелкнуть дважды, чтобы сделать это; Зачем?
- БОЛЬШОЙ ВОПРОС: Щелчок по ссылке «Обновить» не вызывает ObjectDataSource UpdateMethod?
Вы не используете objectDataSource в своем коде! – dotfreelancer