ASP.NET Пользовательский контроль Eval () DB.Null проблема - PullRequest
0 голосов
/ 19 сентября 2011

У меня есть пользовательский элемент управления, который содержит повторитель. Повторитель выводит один или два столбца в зависимости от параметров, использованных при его создании.

Если значение не указано для второго столбца, т. Е. Должен отображаться только один столбец, то, похоже, ему не понравится, если значение не было установлено.

Я пытаюсь вывести строку, заданную в коде пользовательского элемента управления, а не элемент данных.

У меня есть следующие aspx:

<%# Eval(Column2Data) == DBNull.Value ? "</tr> " : String.Format("<td>{0}</td></tr>", Eval(Column2Data))%>

Если Column2Data имеет значение, оно работает, но если его нет, отображается следующая ошибка:

Value cannot be null.
Parameter name: expression

Есть идеи, почему это не работает?

Ответы [ 4 ]

2 голосов
/ 19 сентября 2011

Это то, что вы ищете:

<%#  DBNull.Value.Equals(Eval(Column2Data)) ? "</tr> " : String.Format("<td>{0}</td></tr>", Eval(Column2Data))%>
2 голосов
/ 19 сентября 2011

Попробуйте это

<% (Column2Data == null) ? "</tr>td></td></tr>", Eval(Column2Data))%> 

Если значение равно нулю, я думаю, что вы хотите представить пустой тд

1 голос
/ 19 сентября 2011

Попробуйте это,

 <%# Eval("Column2Data")==null  ? "<tr><td>N.A</td></tr>" 
                 : Eval("Column2Data","<tr><td>{0}</td></tr>")%>

Это образец списка,

public class Data
    {
        public int? Column2Data { get; set; }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {

            List<Data> list = new List<Data>()
            {
                 new Data(){ Column2Data=10100},
                 new Data(){},
                 new Data(){ Column2Data=4000}
            };
            Repeater1.DataSource = list;
            Repeater1.DataBind();
        }
    }
0 голосов
/ 29 декабря 2013
<%# (string.IsNullOrEmpty(Convert.ToString(Eval("Column2Data")))) ? "Value" :Eval("Column2Data") %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...