2016-07-18 2 views
0

Я работаю над веб-приложением ASPX, где у меня есть gridview с текстовым полем. Моя проблема заключается в том, что я хочу установить текстовое значение для этого текстового поля только тогда, когда у него есть свойство Bind.Проверка того, содержит ли Gridview определенное свойство Bind или нет

<asp:GridView ID="grvShowRecord" runat="server" AutoGenerateColumns="False"> 
<Columns> 
    <asp:TemplateField HeaderText="Value"> 
     <ItemTemplate> 
      -- Something like this, i don't know how to write in ASPX, but in Razor it will be something like 
      @{ 
       if(Bind("txtValue")!=null) -- IF gridview has Bind("txtValue") property then show textbox else show label 
       { 
        <asp:TextBox ID="txtValue" runat="server" Text='<%# Bind("txtValue") %>' ></asp:TextBox>  
       } 
       else 
       { 
        <asp:Label ID="lblValue" runat="server" Text="0" ></asp:TextBox> 
       } 
      }       
     </ItemTemplate> 
    </asp:TemplateField> 
</Columns> 

ПРИМЕЧАНИЕ: Первоначально, когда Binding Gridview на время загрузки страницы, я не использую любой Bind свойства, но позже я устанавливаю этот Bind свойство, а затем снова связывания GridView. Заранее спасибо

ответ

0

Вы можете попробовать что-то вроде этого:

<asp:TemplateField HeaderText="Value"> 
    <ItemTemplate> 
     <asp:TextBox ID="txtValue" runat="server" Text='<%# Bind("txtValue") %>' Visible='<%# !IsNullValue("txtValue") %>' /> 
     <asp:Label ID="lblValue" runat="server" Text="0" Visible='<%# IsNullValue("txtValue") %>' /> 
    </ItemTemplate> 
</asp:TemplateField> 

с этой функцией полезности, определенной в коде-за:

protected bool IsNullValue(string fieldName) 
{ 
    try 
    { 
     object value = Eval(fieldName); 
     return Convert.IsDBNull(value) || value == null || value.ToString() == string.Empty; 
    } 
    catch 
    { 
     return true; 
    } 
} 
+0

Получение исключение «DataBinding: 'System.Data.DataRowView' не содержит свойства с именем «txtValue». – Amar

+0

Как я сказал выше, когда я впервые загружаю gridview, я не устанавливаю какое-либо свойство Bind, и это свойство Bind добавляется вручную из файла Code Behind – Amar

+0

. Я изменил свой ответ, чтобы принять во внимание тот факт, что поле может не всегда существовать. – ConnorsFan