사용 :삭제의 GridView 및 DB의 레코드 나는 GridView1과 같이 선언 (체크 박스 및 삭제 버튼)
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" GridLines="None" DataKeyNames="Case_ID">
<Columns>
<asp:TemplateField>
<ItemTemplate><asp:CheckBox ID="cb" runat="server" /></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="No.">
<ItemTemplate><%# Container.DataItemIndex + 1 %></ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Case Title" DataField="caseTitle"/>
<asp:BoundField HeaderText="Age" DataField="age" />
<asp:BoundField HeaderText="Gender" DataField="gender"/>
<asp:BoundField HeaderText="Treated By" DataField="owner"/>
<asp:BoundField HeaderText="Added Date" DataField="sDate"/>
<asp:BoundField HeaderText="" DataField="Case_ID" Visible="false"/>
</Columns>
</asp:GridView>
를이는
DataTable aTable = new DataTable();
aTable.Columns.Add("caseTitle", typeof(string));
aTable.Columns.Add("age", typeof(string));
aTable.Columns.Add("gender", typeof(string));
aTable.Columns.Add("owner", typeof(string));
aTable.Columns.Add("sDate", typeof(string));
aTable.Columns.Add("Case_ID", typeof(int));
I want to use Case_ID as an index for the GridView, so I can delete a record from database when I check its check box in the GridView.
에 대한 I는 데이터 소스로 사용하고 DataTable에있다 여기
는 시나리오 :
이의 GridView이 사용자가 클릭 체크 상자를 선택 할 수 있습니다 데이터베이스의 경우 정보를 표시합니다 [삭제] 버튼이 작업은 다시 삭제해야 데이터베이스의 코드;
내가 [삭제] 버튼이 코드를 실행하면 :
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox c = (CheckBox)row.FindControl("cb");
if (c.Checked)
{
int rowIndex = GridView1.SelectedIndex;
string id = GridView1.DataKeys[rowIndex].Value.ToString();
ds.DeleteCommand = " delete from Cases where Case_ID=" + id + "";
ds.Delete();
}
}
내가 C는 항상 내가 몇 가지 기록을 확인하고 있습니다 경우에도 널 것으로 나타났습니다; 그래서 문제는 그 체크 박스의 변화를 감지하지 못해 그것을 탐지하기 위해 무엇을 할 수 있습니까?
덕분에, 삭제 버튼이있는 gridview 이후에 나타납니다 '' 난을 미안 ID를 단추의 인수로 사용하는 방법을 모르겠지만 두 개 이상의 확인란을 선택할 수 있습니다. 하나 이상의 ID를 할당 할 수 있습니까? –
Meensat
@Meensat 각 행에 대해 수행해야하는 다른 수표로 내 대답을 편집했습니다. 하지만, 나는 그것을 개선해야한다고 말해야합니다 - 각 행에 대한 작업 삭제 링크 버튼을 시도한 다음, 삭제되어야하는 행을 검색 할 필요가 없습니다 ... – lionheart