2016-08-19 92 views
1

在页面加载我执行这些代码:如何访问GridView中的特定行并更改其属性?

For Each row As GridViewRow In gvRD.Rows 

     If dt.Rows(0).Item("AKCIJA").ToString = "unos" Then 

      Dim myListBox As ImageButton = DirectCast(row.FindControl("btn"), ImageButton) 
      myListBox.ImageUrl = "~/Images/no_edit.png" 
      myListBox.Enabled = False 

     End If 

Next 

有了这个,我在每行改变的ImageUrl,无论是或不喜欢“UNOS”,但我只是想改变与AKCIJA行= “UNOS”。

这是怎么样子的GridView:

  <asp:GridView ID="gvRD" Width="1100px" runat="server" AutoGenerateColumns="False" AllowPaging="True" 
          OnPageIndexChanging="gvRD_PageIndexChanging" 
          OnSelectedIndexChanged= "OnSelectedIndexChanged" 
          OnRowCommand="gvRD_RowCommand"> 

       <PagerSettings Mode="NextPrevious" FirstPageText="First" PreviousPageText="Previous" NextPageText="Next" 
           LastPageText="Last" PreviousPageImageUrl="~/Images/previous_1.png" NextPageImageUrl="~/Images/next_1.png"/> 
       <AlternatingRowStyle BackColor="#EFEFEF" Wrap="False" Font-Italic="False" Font-Names="Arial" 
            Font-Strikeout="False" Font-Underline="False" Font-Overline="False" Font-Bold="False"></AlternatingRowStyle> 
       <RowStyle BackColor="White" Wrap="False" Font-Italic="False" Font-Names="Arial" 
          Font-Strikeout="False" Font-Underline="False" Font-Overline="False" Font-Bold="False"></RowStyle> 
       <HeaderStyle BackColor="#336699" ForeColor="White" Wrap="False" Font-Italic="False" 
          Font-Strikeout="False" Font-Underline="False" Font-Overline="False" Font-Bold="False"></HeaderStyle> 

       <Columns> 

         <asp:BoundField DataField="DATE" HeaderText="Date" ItemStyle-HorizontalAlign="Center" >  
         </asp:BoundField> 

         <asp:BoundField DataField="LK" HeaderText="LK" ItemStyle-HorizontalAlign="Center" HtmlEncode="False"> 
         </asp:BoundField> 

         <asp:BoundField DataField="LIK" HeaderText="LIK" ItemStyle-HorizontalAlign="Center" >      
         </asp:BoundField> 

         <asp:BoundField DataField="DN" HeaderText="DN" ItemStyle-HorizontalAlign="Center" HtmlEncode="False" > 
         </asp:BoundField> 

         <asp:TemplateField> 
          <ItemTemplate> 
           <asp:ImageButton ID="btn" runat="server" CommandName="EditRow" CommandArgument='<%# Bind("ID")%>' ImageUrl="~/Images/edit.png" Enabled="true" /> 
          </ItemTemplate> 
         </asp:TemplateField> 

       </Columns> 
      </asp:GridView> 

回答

2

如果包括在GridView的的DataKeyNames领域 “AKCIJA”:

<asp:GridView ID="gvRD" runat="server" DataKeyNames="AKCIJA" ... > 

可以检索字段的值的每一行:

For Each row As GridViewRow In gvRD.Rows 
    If gvRD.DataKeys(row.RowIndex).Values("AKCIJA").ToString() = "unos" Then 
     ... 
    End If 
Next 
+0

这正是我想要的。万分感谢。 – SeaSide

0

这是什么意思?

For Each row As GridViewRow In gvRD.Rows 
    Dim myListBox As ImageButton = DirectCast(row.FindControl("btn"), ImageButton) 
    If myListBox.ImageUrl = "unos" Then 
     myListBox.ImageUrl = "~/Images/no_edit.png" 
     myListBox.Enabled = False 
    End If 
Next 
+0

“UNOS”只是AKCIJA栏中的一个值。我有DataTable我用来填补GridVIew和GriedView我有一个控制ImageButton应该是每一行Enabled = False在哪里找到AKCIJA =“unos”。 – SeaSide

+0

你可以发布添加“btn”到该行的代码吗?你在做一个自定义的DataGridViewColumn类吗? – FloatingKiwi

相关问题