CheckBox 컨트롤이 포함 된 GridView가 있습니다. 일단 사용자가 원하는 행을 확인하면 단추를 클릭하고 확인 된 행마다 데이터베이스를 업데이트해야합니다.GridView에서 CheckBox 값을 가져 오는 문제가 발생했습니다.
나는 체크 박스 값을 살펴보기 위해 물마루 gridview 행을 반복하는 코드를 가지고 있지만 체크 된 경우에도 항상 false입니다. 무시 상자에서 체크 상자에 대한 참조를 얻지 만 항상 거짓입니다. 내가 여기서 무엇을 놓치고 있니?
aspx.cs 파일 :
protected void Ignore_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in grdNotReceived.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox ignore = (CheckBox)row.FindControl("chkIgnore");
if (ignore.Checked)
{
// Update Database
}
}
}
}
.aspx 페이지 :
<asp:GridView ID="grdNotReceived" runat="server"
Width="600px"
CssClass="mGrid"
AlternatingRowStyle-CssClass="alt"
PagerStyle-CssClass="pgr" AutoGenerateColumns="false">
<AlternatingRowStyle CssClass="alt"/>
<Columns>
<asp:BoundField DataField="Store" HeaderText="Store" />
<asp:BoundField DataField="Dept" HeaderText="Dept" />
<asp:BoundField DataField="Type" HeaderText="Type" />
<asp:BoundField DataField="RefNumber" HeaderText="RefNumber" />
<asp:BoundField DataField="Date" HeaderText="Date" />
<asp:BoundField DataField="Vendor" HeaderText="Vendor" />
<asp:BoundField DataField="Total" HeaderText="Total" />
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkIgnore" runat="server" Checked="false" />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="chkIgnore" runat="server" Checked="false" />
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
의 GridView 데이터 바인딩 방법 : 당신의 데이터 바인딩 기능 (LoadExceptions()
가) somwhere에
protected void LoadExceptions()
{
Database db = new Database();
SqlCommand sql = new SqlCommand();
sql.CommandText = "getSobeysNotReceived";
this.grdNotReceived.DataSource = db.GetSprocDR(sql);
this.grdNotReceived.DataBind();
db.Close();
}
변경할 경우' ItemTemplate>'는 'true'가됩니다. 확인란의 상태를 확인할 때 그 값을 얻습니까? –
Brian
예, 변경하면 사실이됩니다. 사용자가 입력 한 값을 선택하지 않는 이유는 무엇입니까? 마스터 페이지 사용과 관련이 있습니까? – Kerberos42
당신이 어떻게 물건을 설치했는지에 대한 구조를 모르기 때문에 말하기가 정말 어렵습니다. 마스터 페이지 또는 하위 페이지의 확인란입니까? – Brian