检查 Datagrid 中 ItemTamplate 标签的值
Check the values of a ItemTamplate Label in Datagrid
我有一个数据网格和 ItemTamplate,其中有 2 个标签,它们都包含一些数据。
我希望能够遍历整个 GridView 并查看是否有任何标签包含作品 Keyboarding
以及它是否确实将第二个标签的值从 Incomplete
更改为 To fails
或 Pass
.
这是代码。
<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";
}
}
}
我有一个数据网格和 ItemTamplate,其中有 2 个标签,它们都包含一些数据。
我希望能够遍历整个 GridView 并查看是否有任何标签包含作品 Keyboarding
以及它是否确实将第二个标签的值从 Incomplete
更改为 To fails
或 Pass
.
这是代码。
<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";
}
}
}