检查 Datagrid 中 ItemTamplate 标签的值

Check the values of a ItemTamplate Label in Datagrid

我有一个数据网格和 ItemTamplate,其中有 2 个标签,它们都包含一些数据。

我希望能够遍历整个 GridView 并查看是否有任何标签包含作品 Keyboarding 以及它是否确实将第二个标签的值从 Incomplete 更改为 To failsPass.

这是代码。

<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 是 c# 中的一个方法,如果它的 1 是完整的,如果它的 0 是完整的:

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

    return "Complete";
}

这 return 标签的值并显示如下。

但我想将 InComplete/Compete 更改为 Fail/Pass 只有第一个标签是 Keyboarding 其他行可以保持 InComplete 或 Complete。

在您的 itemdatabound 事件中尝试以下代码:

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";
        }
    }

}