Mgkvp Ответов: 4

Как включить текстовое поле, вложенное в gridview, в событии rowediting ?


Как включить текстовое поле, вложенное в Gridview, в событии RowEditing ?

protected void MyGrid_RowEditing(object sender, GridViewEditEventArgs e)
        {
            string CampID;
            //int id = Convert.ToInt32(MyGrid.DataKeys[e.].ToString());
            CampID = (Session["CampaignID"].ToString());
            mf.UpdateStatus(CampID, 'X');
            MyGrid.EditIndex = e.NewEditIndex;
            //string lblOfferType = MyGrid.Rows[e.NewEditIndex].Cells[4].Text;
            GridViewRow currentRow = this.MyGrid.Rows[e.NewEditIndex];

            string lblOfferType = (currentRow.FindControl("lblOffer_Type") as Label).Text;
            //string freeQty = (currentRow.FindControl("txtFree_Qty") as TextBox).Text;
            //string discPercent = (currentRow.FindControl("txtDisc_Percent") as TextBox).Text;
            //TextBox discValue = (currentRow.FindControl("txtDisc_Value") as TextBox);
            //string offerPrice = (currentRow.FindControl("txtOffer_Price") as TextBox).Text;
            //string freeArticle = (currentRow.FindControl("txtFree_Article") as TextBox).Text;

            if (lblOfferType == "VALUE DISCOUNT")
            {
                GridViewRow row = (GridViewRow)((Control)sender).NamingContainer;
                GridViewRow currentRow1 = this.MyGrid.Rows[e.NewEditIndex];
                ((TextBox)MyGrid.Rows[e.NewEditIndex].FindControl("txtDisc_Value")).Enabled = false;
                //discValue.Enabled = true;
                //(currentRow.FindControl("txtDisc_Value") as TextBox).Enabled = true;
                //((TextBox)currentRow.FindControl("txtDisc_Value")).Enabled = true;
            }
}



Ошибка: ссылка на объект не установлена на экземпляр.

Пожалуйста, предоставьте решение.

Что я уже пробовал:

protected void MyGrid_RowEditing(object sender, GridViewEditEventArgs e)
        {
            string CampID;
            //int id = Convert.ToInt32(MyGrid.DataKeys[e.].ToString());
            CampID = (Session["CampaignID"].ToString());
            mf.UpdateStatus(CampID, 'X');
            MyGrid.EditIndex = e.NewEditIndex;
            //string lblOfferType = MyGrid.Rows[e.NewEditIndex].Cells[4].Text;
            GridViewRow currentRow = this.MyGrid.Rows[e.NewEditIndex];

            string lblOfferType = (currentRow.FindControl("lblOffer_Type") as Label).Text;
            //string freeQty = (currentRow.FindControl("txtFree_Qty") as TextBox).Text;
            //string discPercent = (currentRow.FindControl("txtDisc_Percent") as TextBox).Text;
            //TextBox discValue = (currentRow.FindControl("txtDisc_Value") as TextBox);
            //string offerPrice = (currentRow.FindControl("txtOffer_Price") as TextBox).Text;
            //string freeArticle = (currentRow.FindControl("txtFree_Article") as TextBox).Text;

            if (lblOfferType == "VALUE DISCOUNT")
            {
                GridViewRow row = (GridViewRow)((Control)sender).NamingContainer;
                GridViewRow currentRow1 = this.MyGrid.Rows[e.NewEditIndex];
                ((TextBox)MyGrid.Rows[e.NewEditIndex].FindControl("txtDisc_Value")).Enabled = false;
                //discValue.Enabled = true;
                //(currentRow.FindControl("txtDisc_Value") as TextBox).Enabled = true;
                //((TextBox)currentRow.FindControl("txtDisc_Value")).Enabled = true;
            }
}

4 Ответов

Рейтинг:
1

dkamble 10358990

попробовать это
Текстовое поле txtDisc_Value =(текстовое поле)MyGrid.Ряды[электронный.NewEditIndex].FindControl("txtDisc_Value");
txtDisc_Value.Включено = ложь;


Рейтинг:
1

Mgkvp

Пожалуйста, предоставьте лучшее решение этой проблемы.
заранее спасибо.


Richard Deeming

И этот тоже.

Рейтинг:
1

Mgkvp

<asp:TemplateField HeaderText="Discount Value">
<ItemTemplate>
<asp:Label ID="lblDisc_Value" runat="server" Text='<%# Bind("Disc_Value") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtDisc_Value" runat="server" Text='<%# Bind("Disc_Value") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
 
I am able to find the value of lblDisc_Value but unable to Enable txtDisc_Value to false or true


Richard Deeming

И этот тоже.

Рейтинг:
0

Mgkvp

Спасибо, но эта ошибка появляется после выполнения вашей строки кода:-

"Ссылка на объект не установлена на экземпляр объекта."


dkamble 10358990

используйте событие RowDataBound

https://stackoverflow.com/questions/20892053/how-to-enable-or-disable-text-box-in-gridview-using-c-sharp

Member 13439076

Спасибо!!! Это работает для меня

Richard Deeming

Если вы хотите ответить на решение, нажмите кнопку "есть вопрос или комментарий?" кнопка под этим решением. НЕ опубликуйте свой ответ как новое "решение".

Удалите это не-решение.