3 c# asp.net checkbox gridview
我一直在使用ASP.NET/C#中的GridView中的CheckBox列.完成后,此页面应显示我办公室的当前未结头寸.人们应该能够检查他们想要申请的多个职位,然后继续到下一个屏幕(实际申请开始的地方).
这是我单击"立即应用"按钮时运行的例程.在我尝试了我的老板和人们在这里提出的十几种其他组合后,我在这里找到了这个代码.当我运行它时,isChecked = false,因此它不会在if语句中运行任何内容.我错过了一些明显的东西吗
for (int i = GridView1.Rows.Count - 1; i > -1; i--)
{
GridViewRow row = GridView1.Rows[i];
bool isChecked = ((CheckBox)row.FindControl("cbx_apply")).Checked;
if (isChecked)
{
try
{
Response.Write("Hello world");
PositionsAppliedFor.Add(Convert.ToInt32((GridView1.Rows[i].Cells[1].Text)));
Session["SelectedPositionIDList"] = PositionsAppliedFor;
}
catch (Exception error)
{
Response.Write(error.Message);
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:另外,我意识到我在if语句中所做的事情并不重要.我只是想让它做/某事/.
ASP.NET:
<asp:GridView ID="GridView1" runat="server"
onselectedindexchanged="UpdateSelectedPostions">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="cbx_apply" runat="server"
OnCheckedChanged="UpdateSelectedPostions"
AutoPostBack="false"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)
很简单,也许很遗憾.我是/非常/新的ASP.NET.
这是我加载网格数据并绑定它的地方:
string sqlstatement = "SELECT * FROM dbo.POSITION WHERE PositionStartDate < GETDATE() AND PositionEndDate > GETDATE()";
command = new SqlCommand(sqlstatement, connection);
ds = new DataSet();
adapter = new SqlDataAdapter(command);
builder = new SqlCommandBuilder(adapter);
adapter.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
connection.Close();
Run Code Online (Sandbox Code Playgroud)
希望这已经足够了,因为它真的是我所拥有的一切.我还没有在页面上添加任何其他内容 - 只是试图让这些愚蠢的复选框与我同意.
确保您的绑定代码在这样的块中:
if (!Page.IsPostBack)
{
}
Run Code Online (Sandbox Code Playgroud)
否则,您将重新创建每个回发的复选框,因此会丢失它们被检查的事实.
如果你的代码
string sqlstatement = "SELECT * FROM dbo.POSITION WHERE PositionStartDate < GETDATE() AND PositionEndDate > GETDATE()";
command = new SqlCommand(sqlstatement, connection);
ds = new DataSet();
adapter = new SqlDataAdapter(command);
builder = new SqlCommandBuilder(adapter);
adapter.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
connection.Close();
Run Code Online (Sandbox Code Playgroud)
在page_load方法中,每次回发时都会调用它,你应该阅读这个,这将使你更好地理解这一点.
为了避免每次使用此回发包装代码时运行此代码
if(!Page.IsPostBack)
{
}
Run Code Online (Sandbox Code Playgroud)
同样在旁注中,您在CheckChanged和SelectedIndexChanged上调用UpdateSelectedPostions是否意味着这样做?
| 归档时间: |
|
| 查看次数: |
289 次 |
| 最近记录: |