2017-11-06 15 views
2

データグリッドがあり、ItemTamplateがあり、2つのラベルがあり、両方にデータが含まれています。Datagrid内のItemTamplateラベルの値を確認します

私は、全体のGridViewコントロールをループのことができるようにし、任意のラベルが仕事Keyboardingが含まれている場合、それはIncompleteからfailsまたはPassへの2番目のラベルの値を変更しないかどうかを確認したいです。

ここにコードがあります。

<asp:datagrid id="dgData" runat="server" Width="658px" CellPadding="2" PageSize="2" DataKeyField="ID" 
      AutoGenerateColumns="False" ShowFooter="True" BorderColor="AliceBlue" OnItemDataBound="dgData_ItemDataBound"> 
    <SelectedItemStyle ForeColor="HighlightText" BackColor="Highlight"></SelectedItemStyle> 
    <AlternatingItemStyle BackColor="WhiteSmoke"></AlternatingItemStyle> 
    <HeaderStyle Font-Bold="True" BackColor="AliceBlue"></HeaderStyle> 
    <FooterStyle Font-Bold="True" BackColor="AliceBlue"></FooterStyle> 
    <Columns> 
    <asp:BoundColumn DataField="ID" Visible="False"></asp:BoundColumn> 
    <asp:BoundColumn DataField="Name" HeaderText="" ItemStyle-VerticalAlign="Top"></asp:BoundColumn> 
    <asp:TemplateColumn HeaderText="Term 1" ItemStyle-Wrap="True"> 
     <ItemTemplate> 
     <asp:label BorderStyle=None Visible='<%# ReverseBool(Convert.ToBoolean(DataBinder.Eval(Container, "DataItem.IsCompleteOrNot"))) %>' runat="server" ID="edit_Score" Text='<%# DataBinder.Eval(Container, "DataItem.Score") %>'> 
     </asp:label> 
     <asp:label BorderStyle=None Text='<%# GetCompleteIncomplete(Convert.ToInt32(DataBinder.Eval(Container, "DataItem.Score"))) %>' Visible='<%# DataBinder.Eval(Container, "DataItem.IsCompleteOrNot") %>' id="txtIsComplete" runat="server"> 
     </asp:label> 
     </ItemTemplate> 
    </asp:TemplateColumn> 

    </Columns> 
</asp:datagrid> 

今のC#は、サーバーGetCompleteIncompleteへのコールは、その0その完全であればその1その完全な場合は、それを見てC#での方法であって、

protected string GetCompleteIncomplete(int iScore) 
{ 
    if (iScore == 0) 
    { 
     return "Incomplete"; 
    } 

    return "Complete"; 
} 

これは返しますラベルに値を設定し、このように表示します。 This is how it looks like

しかし、最初のラベルがKeyboardingである場合にのみ、InComplete/CompeteをFail/Passに変更する必要があります。あなたのitemdataboundイベントのコード以下

答えて

1

試してみてください。

if ((e.Item.ItemType == ListItemType.Item) || 
        (e.Item.ItemType == ListItemType.AlternatingItem)) 
{ 
    Label edit_Score = (Label)e.Item.FindControl("edit_Score"); 
    Label txtIsComplete = (Label)e.Item.FindControl("txtIsComplete"); 

    if (edit_Score.Text == "Keyboarding") 
    { 
     if (txtIsComplete.Text == "Complete") 
     { 
      txtIsComplete.Text = "Pass"; 
     } 
     else if(txtIsComplete.Text == "InComplete") 
     { 
      txtIsComplete.Text = "Fail"; 
     } 
    } 

} 
関連する問題