나는 그 구성 요소의 대부분을 즉석에서 생성하기위한 C# aspx 웹 응용 프로그램을 가지고 있습니다. 이 GridView는 일부 확인란을 표시하기위한 것입니다.gridview의 동적 체크 상자
wierd는 실행 중에는 구성 요소를 표시하지 않지만 네임 스페이스는 표시합니다 (예 : System.UI.Webcontrols.CheckBox
).
확인란을 선택해야합니다. 이 문제를 어떻게 해결할 수 있습니까?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound" />
</div>
</form>
</body>
</html>
[aspx.cs]
namespace ChkBoxOnGridView
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
PopulateGridView();
}
protected void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox cb = new CheckBox();
e.Row.Cells[1].Controls.Add(cb);
}
}
private void PopulateGridView()
{
GridView1.DataSource = null;
GridView1.Columns.Clear();
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("DTA", typeof(System.String)));
dt.Columns.Add(new DataColumn("Is Visible", typeof(System.Web.UI.WebControls.CheckBox)));
CheckBox chkbx = new CheckBox();
chkbx.Checked = true;
DataRow row1 = dt.NewRow();
row1["DTA"] = "Some Text";
row1["Is Visible"] = chkbx;
dt.Rows.Add(row1);
foreach (DataColumn col in dt.Columns)
{
BoundField bField = new BoundField();
bField.DataField = col.ColumnName;
bField.HeaderText = col.ColumnName;
GridView1.Columns.Add(bField);
}
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
}
당신이 나에게 내 코드를 기반으로 작동하는 모델을 보여 주 시겠어요, C#을 아주 새로운 오전. – antowizzy
내가 당신에게 보여줄 것이 무엇이든 어렵지 않습니다. 그러나 CustomerGridView에 DataBind를 사용하고 RowDataBound 이벤트를 표시된 코드로 처리하면됩니다. e.Row.DataItem을 모델 클래스에 캐스팅하는 각 행에 연결된 데이터에 액세스 할 수 있으므로 해당 속성에 쉽게 액세스하여 컨트롤을 추가하는 방법을 쉽게 결정할 수 있습니다. – JotaBe
어떻게하면 chkbx의 검사 상태를 확인하고 첫 번째 열의 반복 인 세 번째 열을 제거 할 수 있습니까? 코드를 업데이트했습니다. – antowizzy