이 문제의 해결 방법을 만들었습니다. 있는 gridview에서 나는 템플릿 열 (내가 CommandArgument에 두 개의 인수를 전달하고있어)가 :
난 뒤에 코드 분할 CommandArgument과의 SelectedIndexChanged 이벤트를 사용하여 다음 변수에 값을 저장하고있는
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ToolTip="Delete" ID="button4" ButtonType="Image" ImageUrl="~/Projectimages/img_del.png" Text="" CommandName="Select" CommandArgument='<%#Eval("ID") + ";" +"Delete"%>' runat="server"/>
</ItemTemplate>
</asp:TemplateField>
:
string selectCommand = "";
int selectCommandID = -1;
protected void GridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Select")
{
if (!e.CommandArgument.ToString().Contains(";"))
selectCommand = "Select";
else
{
selectCommandID = Convert.ToInt32(e.CommandArgument.ToString().Split(';')[0]);
selectCommand = e.CommandArgument.ToString().Split(';')[1];
}
}
}
protected void GridView_SelectedIndexChanged(object sender, EventArgs e)
{
if (selectCommand == "Select")
{
//Select Code Here
}
else if (selectCommand == "Delete")
{
MyTestEntities context = new MyTestEntities();
Table1 selectedRow = context.Table1.Single(a => a.ID == selectCommandID);
context.Table1.DeleteObject(selectedRow);
context.SaveChanges();
EntityDataSource1.DataBind();
}
}
이 작동합니다. 이것을 사용하여 그리드 뷰 행을 업데이트 할 수도 있습니다.
그 전후 (2012) EF가있는 ASPxGriView는 읽기 전용입니다. 열 단위 정렬조차도 작동하지 않기 때문에 훨씬 더 좋습니다. – Anderson