Learn.net37 Ответов: 3

Оператор усилителя&;&ампер; не может применяться к операндам типа System.чертеж.цвет и bool


Здравствуйте, у меня есть проблема с объединением двух условий ниже, я пробую много вещей, чтобы использовать эти два условия вместе, но это не сработало, если кто-то может помочь мне или есть какой-то способ решить эту проблему, я буду надеяться



Спасибо..

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

if (e.Row.RowType == DataControlRowType.DataRow)
{
	//put your control name here to get and then check for your value
	Label lbl = e.Row.FindControl("Label17") as Label;

	if (lbl.Text == "ملغي Cancled ")
	{
	   e.Row.BackColor = Color.Red && Amount == 0; // -----> Problem is here
		return; //will stop here
	}
}

Graeme_Grant

Да, это синтаксическая ошибка. Что вы пытаетесь сделать на проблемной линии?

3 Ответов

Рейтинг:
20

Graeme_Grant

Вы имеете в виду:

if (e.Row.RowType == DataControlRowType.DataRow)
{
	//put your control name here to get and then check for your value
	Label lbl = e.Row.FindControl("Label17") as Label;
 
	if (lbl.Text == "ملغي Cancled ")
	{
           e.Row.BackColor = Color.Red;
           Amount = 0;
           return;
	}
}


OriginalGriff

Что должно делать "сумма = = 0;"?

Graeme_Grant

Правда... Я должен был исправить и это тоже... д-д-д-сделано...

Learn.net37

предполагается, что его значение равно 0, что означает, что оно не вычисляется с другими записями

OriginalGriff

Прочтите еще раз: "= = " - это логический оператор, а не оператор присваивания. Это "="

Graeme_Grant

Да, Amount = 0; присваивает значение 0 к Amount.

Рейтинг:
2

OriginalGriff

Проблема в том, что "&&" - это операция була, как и"==", но ни одна комбинация приоритета операторов не заканчивается одинаковыми типами на каждой стороне обоих операторов:

(Color.Red && Amount) == 0
это сравнение bool с int.
Color.Red && (Amount == 0)
это сравнение цвета с булом.
Поэтому компилятор жалуется.
Я подозреваю, что вы хотели использовать двоичный код и:
(Color.Red & Amount) == 0
Но, не зная вашего проекта, я не могу точно сказать.


Learn.net37

ОК, код для GridView, если метка = "ملغي отменили

сделайте обратную строку color = red и (amount) that label bind in database = 0, чтобы она не вычислялась, и это код для databound


int Amount = 0;
protected void GridView1_RowDataBound(отправитель объекта, GridViewRowEventArgs e)
{





если (электронная.Подряд.RowType == DataControlRowType.Строкаданных)
{



// поместите свое имя элемента управления здесь, чтобы получить, а затем проверьте свое значение
Label lbl = e. Row.FindControl ("Label17") в качестве метки;

if (lbl. Text = = " مليي Cancled ")
{
е.Подряд.Цвет Фона = (Цвет.Red & Amount) = = 0;
return; / / остановится здесь
}




}
если (электронная.Подряд.RowType == DataControlRowType.Строкаданных)
{
Сумма + = Конвертация.ToInt32(DataBinder. Eval (e. Row. DataItem, " Spare1"));

}
// Отображение итогов в нижнем колонтитуле gridview
остальное, если (электронная.Подряд.RowType == DataControlRowType.Нижний колонтитул)
{
е.Подряд.Клеток[9].Text = "Grand_Total:" + Сумма.ToString("#,##0") + "" + "SAR ";
е.Подряд.Клеток[9].Шрифт.Жирный = истина;




}



}

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

Рейтинг:
2

Patrice T

e.Row.BackColor = Color.Red && Amount == 0; // -----> Problem is here

Да, этот код бессмыслен, поэтому нет никакой возможности исправить его, потому что вы не сказали нам, что он должен делать.
Цитата:<
/div> У меня есть проблема с объединением двух условий ниже

Color.Red это не условие.
Объясните, что вы хотите сделать.
[Обновление]
Это тоже не имеет никакого значения:
e.Row.BackColor = (Color.Red & Amount) == 0;