0

以前の投稿から 、javascript を使用して、正常に動作するチェックボックスをいくつかチェックしています。しかし、いくつかのレコードをデータベースに入れるボタンがあります。次のコードを使用すると、チェックボックスがチェックされているかどうかに関係なく、常に false になります。

        bool first = true;
        bool _IsPhone = false;
        bool _IsLotus = false;
        bool _IsRelationship = false;
        bool _IsAdmin = false;
        string _Country;

        foreach (GridViewRow row in CountryAccessGrid.Rows)
        {
            CheckBox ch = ((CheckBox)row.FindControl("chkPhones"));

            _Country = ((Label)row.FindControl("lblCountryShort")).Text;
            _IsPhone = ((CheckBox)row.FindControl("chkPhones")).Checked;
            _IsLotus = ((CheckBox)row.FindControl("chkLotus")).Checked;
            _IsRelationship = ((CheckBox)row.FindControl("chkRelationship")).Checked;
            _IsAdmin = ((CheckBox)row.FindControl("chkIsAdmin")).Checked;

            if (_IsPhone == true || _IsLotus == true || _IsRelationship == true || _IsRelationship == true || _IsAdmin == true)
            {
                cntr = cntr + 1;

                if (!first)
                {
                    insertaccess += " UNION ALL ";
                }
                insertaccess += " SELECT " + _UserID + ", '" + _Country + "', " + _IsPhone + ", " + _IsLotus + ", " + _IsRelationship + ", " + _IsAdmin;

                first = false;
            }
        }

チェックボックスの状態を取得する方法を教えてください。

4

2 に答える 2

0

この質問に答えるには、次のことを知っておく必要があります。

  • このコードはどこから
  • は何ですかDataSource
  • いつどこに行きますDataBindGridView

しかし、ポストバックであっても常にDataBind入っていると思います。Page_Loadこれにより、値が上書きされ、イベントがトリガーされなくなります。

したがって、次のIsPostBackプロパティを使用する必要があります。

private void Page_Load()
{
    if (!IsPostBack)
    {
        DataBindGridView();
    }
}
于 2012-10-24T13:37:44.907 に答える
0

使用することをお勧めしますRowDataBound event

void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
         var ch = (CheckBox)row.FindControl("chkPhones");
    }
  }

<asp:gridview id="GridView"  onrowdatabound="GridView_RowDataBound" runat="server">
      </asp:gridview>
于 2012-10-24T13:38:33.493 に答える