Присвоение флажку значения из gridview

#c# #asp.net #gridview #checkbox

#c# #asp.net #просмотр сетки #флажок

Вопрос:

Я selecting row из Gridview , работаю хорошо, за checkbox исключением того, что я присваиваю значение, checkbox полученное из gridview в checkbox , которое размещено в веб-форме, но оно не представлено флажком в форме, в каждом случае он показывает пустой флажок

 if (gridviewDesignations.SelectedRow.Cells[5].Text == "amp;nbsp;")
{   
    chkIsHead.Text = gridviewDesignations.SelectedRow.Cells[5].Text;
}
  

короче говоря, флажок не выбирает значение из gridview

Обновить:

тоже пробовал:

 CheckBox chkIsHead = (CheckBox) gridviewDesignations.SelectedRow.Cells[5].Controls[0];
            if (chkIsHead.Checked == false)
            {
                chkIsHead.Checked = false;
            }
            else
            {

                chkIsHead.Checked = true;
            }
  

Обновить:

мой полный код:

 public partial class frmDesignations : System.Web.UI.Page
{
    AccessibleVariables accessVariables = new AccessibleVariables(); //Used to access global variables
    public void Clear(params TextBox[] txtBoxes)
    {
        foreach (TextBox txtbx in txtBoxes)
        {
            txtbx.Text = "";
        }
    }


    public void fillddlDepartments()
    {
        ManageDepartmentsBizz mngDepBizz = new ManageDepartmentsBizz();
        DataSet ds = (DataSet)mngDepBizz.SelectDepartments();

        if (ds.Tables[0].Rows.Count != 0)
        {
            ddlDepartments.DataValueField = "DepID";
            ddlDepartments.DataTextField = "DepName";
            ddlDepartments.DataSource = ds.Tables[0];
           // ddlDepartments.SelectedIndex = -1;
            ddlDepartments.DataBind();
            ddlDepartments.Items.Insert(0, "--Select--");
        }
        //else
        //    ddlDepartments.SelectedIndex = -1;
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session.Count <= 0)
        {
            Response.Redirect("login.aspx");
        }
        lblMsgPopUp.Visible = false;

        if (!IsPostBack) 
        {
            fillddlDepartments();
        }
    }
    protected void btnSave_Click(object sender, EventArgs e)
    {
        try
        {
            int DepartmentID = Convert.ToInt32(ddlDepartments.SelectedValue);
            bool IsHead = Convert.ToBoolean(chkIsHead.Checked);
            DesignationsBizz DesigBizz = new DesignationsBizz(-1, txtTitle.Text, DepartmentID, txtContactNo.Text, IsHead);
            //-1 is bogus,used to fill parameters criteria i.e no of params

            ManageDesignationsBizz mngDesigBizz = new ManageDesignationsBizz();
            bool Result = mngDesigBizz.Insert(DesigBizz);

            if (Result == true)
            {

                HiddenFieldSetMessage.Value = "Saved";
                HiddenFieldShowMessage.Value = "True";
                Clear(txtTitle, txtSelectedID, txtContactNo);
            }
            else
            {
                HiddenFieldSetMessage.Value = "RecordAlreadyExists";
                HiddenFieldShowMessage.Value = "True";
            }
        }
        catch (Exception)
        {
            HiddenFieldSetMessage.Value = "NotSaved";
            HiddenFieldShowMessage.Value = "True";
        }
    }
    protected void btnSearchPopup_Click(object sender, EventArgs e)
    {
        string DesignationTitle = txtDesignationPopUp.Text;
        ManageDesignationsBizz mngDepsBizz = new ManageDesignationsBizz();
        DataSet ds = (DataSet)mngDepsBizz.Select(DesignationTitle);

        if (ds.Tables[0].Rows.Count != 0)
        {
            lblMsgPopUp.Visible = false;
            gridviewDesignations.DataSource = ds.Tables[0];
            gridviewDesignations.DataBind();
            gridviewDesignations.Visible = true;
        }
        else
        {
            lblMsgPopUp.Visible = true;
            gridviewDesignations.Visible = false;
        }
    }
    protected void gridviewDesignations_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        string DesignationTitle = txtDesignationPopUp.Text;
        ManageDesignationsBizz mngDepBizz = new ManageDesignationsBizz();
        DataSet ds = (DataSet)mngDepBizz.Select(DesignationTitle);

        if (ds.Tables[0].Rows.Count != 0)
        {
            gridviewDesignations.PageIndex = e.NewPageIndex;
            gridviewDesignations.DataSource = ds.Tables[0];
            gridviewDesignations.DataBind();
            gridviewDesignations.Visible = true;
        }
    }
    protected void btnEdit_Click(object sender, EventArgs e)
    {
        if (gridviewDesignations.SelectedRow != null)
        {
            if (gridviewDesignations.SelectedRow.Cells[1].Text == "amp;nbsp;")
            {
                txtSelectedID.Text = string.Empty;
            }
            else
            {
                txtSelectedID.Text = gridviewDesignations.SelectedRow.Cells[1].Text;
            }
            if (gridviewDesignations.SelectedRow.Cells[2].Text == "amp;nbsp;")
            {
                txtTitle.Text = string.Empty;
            }
            else
            {
                txtTitle.Text = gridviewDesignations.SelectedRow.Cells[2].Text;
            }
            if (gridviewDesignations.SelectedRow.Cells[3].Text == "amp;nbsp;")
            {
                ddlDepartments.SelectedValue = string.Empty;
            }
            else
            {
                ddlDepartments.SelectedValue = gridviewDesignations.SelectedRow.Cells[3].Text;
                accessVariables.DepID = Convert.ToInt32(gridviewDesignations.SelectedRow.Cells[3].Text);
                ViewState["depID"] = accessVariables.DepID;
            }
            if (gridviewDesignations.SelectedRow.Cells[4].Text == "amp;nbsp;")
            {
                txtContactNo.Text = string.Empty;
            }
            else
            {
                txtContactNo.Text = gridviewDesignations.SelectedRow.Cells[4].Text;
            }

            CheckBox chkIsHead = (CheckBox) gridviewDesignations.SelectedRow.Cells[5].Controls[0];
            if (chkIsHead.Checked == false)
            {
                chkIsHead.Checked = false;
            }
            else
            {
                chkIsHead.Checked = true;
            }
            gridviewDesignations.DataBind();
            gridviewDesignations.SelectedIndex = -1;
            HiddenFieldShowHideButtons.Value = "True";
        }
    }
    protected void btnUpdatePopUp_Click(object sender, EventArgs e)
    {
        try
        {
            int id = Convert.ToInt32(txtSelectedID.Text);
            int DepartmentID = Convert.ToInt32(ddlDepartments.SelectedValue);
            bool IsHead = Convert.ToBoolean(chkIsHead.Checked);
            DesignationsBizz DesigBizz = new DesignationsBizz(id, txtTitle.Text, DepartmentID, txtContactNo.Text, IsHead );
            ManageDesignationsBizz mngDesigBizz = new ManageDesignationsBizz();
            bool Result = mngDesigBizz.Update(DesigBizz);

            if (Result == true)
            {
                HiddenFieldSetMessage.Value = "Updated";
                HiddenFieldShowMessage.Value = "True";
                Clear(txtSelectedID, txtTitle, txtContactNo);
            }
            else
            {
                HiddenFieldSetMessage.Value = "NotUpdated";
                HiddenFieldShowMessage.Value = "True";
            }
        }
        catch (Exception)
        {
            HiddenFieldSetMessage.Value = "NotUpdated";
            HiddenFieldShowMessage.Value = "True";
        }
    }
    protected void btnDeletePopUp_Click(object sender, EventArgs e)
    {
        try
        {
            int ID = Convert.ToInt32(txtSelectedID.Text.Trim());
            ManageDesignationsBizz mngDepBizz = new ManageDesignationsBizz();
            mngDepBizz.Delete(ID);
            Clear(txtTitle, txtSelectedID, txtContactNo);
            HiddenFieldSetMessage.Value = "Deleted";
            HiddenFieldShowMessage.Value = "True";
        }
        catch (Exception)
        {
            HiddenFieldSetMessage.Value = "NotDeleted";
            HiddenFieldShowMessage.Value = "True";
        }
    }
    protected void btnClosePopup_Click(object sender, EventArgs e)
    {
        Clear(txtTitle, txtSelectedID, txtContactNo);
    }
    protected void ddlDepartments_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (txtSelectedID.Text != "")
        {
            accessVariables.DepID = Convert.ToInt32(ddlDepartments.SelectedValue);
            ViewState["depID"] = accessVariables.DepID;
        }
        else 
        {
            accessVariables.DepID = Convert.ToInt32(ddlDepartments.SelectedValue);
            ViewState["depID"] = accessVariables.DepID;
        }



    }
    protected void chkIsHead_CheckedChanged(object sender, EventArgs e)
    {
        if (txtSelectedID.Text != "")
        {
            int DepID = Convert.ToInt32(ViewState["depID"]);
            ManageDesignationsBizz mngDesig = new ManageDesignationsBizz();
            bool isHead = mngDesig.SelectIsHeadExistsByDepID(DepID);

            if (isHead == true)
            {
                HiddenFieldSetMessage.Value = "HeadExists";
                HiddenFieldShowMessage.Value = "True";
                chkIsHead.Checked = false;
            }
        }
        else 
        {
            int DepID = Convert.ToInt32(ViewState["depID"]);
            ManageDesignationsBizz mngDesig = new ManageDesignationsBizz();
            bool isHead = mngDesig.SelectIsHeadExistsByDepID(DepID);

            if (isHead == true)
            {
                HiddenFieldSetMessage.Value = "HeadExists";
                HiddenFieldShowMessage.Value = "True";
                chkIsHead.Checked = false;
            }
        }


    }
}
  

Комментарии:

1. например, я присваиваю значение флажка, восстановленного из gridview, флажку, который размещен в веб-форме, но он не показывает реального значения

2. неясное описание! Глядя на ваш код, вы присваиваете восстановленное значение CheckBox тому же флажку, а не тому, который находится в webform, верно?

3. Я даже не понял этого предложения

4. @jackjop проверьте сейчас, обновлено

5. вы имеете в виду текст (метку / заголовок) для флажка, который находится в webform? или вы хотите установить свойство Checked для флажка (в webform) в зависимости от выбранного флажка строки (в gridview)? Пожалуйста, также покажите свою полную HTML-разметку! Является ли этот chkHead в GridView или вне GridView?

Ответ №1:

Я считаю, что вам нужно сделать следующее: введите описание изображения здесь

Затем выберите Редактировать программно.

Я не уверен, что вам нужно будет вручную помещать данные в сетку, но это не будет слишком сложно. Примеры можно увидеть здесь :http://msdn.microsoft.com/en-us/library/system.data.datatable (v =против110).aspx

PS: Вы можете установить для источника данных в виде таблицы значение DataTable.

введите описание изображения здесь