【发布时间】:2015-12-23 06:16:25
【问题描述】:
我有一个如下所述的 GridView
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:GridView ID="gvResult" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkAll" runat="server" onclick="checkAll(this);" />
Remove Lists
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chk" runat="server" onclick="Check_Click(this)" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
当我试图在按钮单击时获取复选框的值时,即使选中了复选框,它也总是返回 false
下面是我的按钮点击事件
protected void btnDeleteLists_Click(object sender, EventArgs e)
{
string str = string.Empty;
foreach (GridViewRow gvrow in gvResult.Rows)
{
CheckBox chk = (CheckBox)gvrow.FindControl("chk");
if (chk != null & chk.Checked)
{
//Some Code
}
}
}
页面加载事件
protected void Page_Load(object sender, EventArgs e)
{
cmdSearch.Text = "Search " + rbSearch.SelectedValue;
if (SessionUtilities.Current_UserType != "3")
{
gvResult.Columns[gvResult.Columns.Count - 3].Visible = false;
}
try
{
if (Request.QueryString["ListType"].ToString().Trim() == "SL") ListType = 2;
if (Request.QueryString["ListType"].ToString().Trim() == "DSL") ListType = 3;
}
catch { }
if (ListType == 2) ListTypeString = "Suppression";
if (ListType == 3) ListTypeString = "Default Suppression";
SessionUtilities.SetTabHeadingDesc("List", ListTypeString + " List Summary", "View summary of your created lists");
this.Title = "(View List) " + System.Configuration.ConfigurationManager.AppSettings["Page_Title"].ToString();
//if (!IsPostBack && !Is)
//{
BindResultGridView();
//}
newDt = GetAllLists();
}
那么我哪里出错了?
【问题讨论】:
-
添加页面加载代码并更新面板(如果有)
-
而不是
//if (!IsPostBack && !Is) //{ BindResultGridView(); //}只需使用if (!IsPostBack) { BindResultGridView(); }就完成了。如果您的状态为postback,请不要在页面加载中再次绑定gridview。 -
你是对的 thanxxx...我什至没有注意到 Thanx 现在正在工作
-
欢迎,我将其作为答案发布