如何在代码隐藏中更改listview中的标签值?
问题描述:
其实我正在开发模板使用asp.net和c#。
我使用的ListView在我的ascx页面,我的ItemTemplate中是如下:如何在代码隐藏中更改listview中的标签值?
<ItemTemplate>
<tr style="background-color:#FFF8DC;color: #000000;">
<td>
<asp:Button ID="DeleteButton" runat="server" CommandName="Delete" Text="Delete" CausesValidation="false" OnClientClick="return confirm('Are you sure you want to delete this Product Details?');" />
<asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="Edit" CausesValidation="True" />
</td>
<td>
<asp:Label ID="EmpIDLabel" runat="server" Text='<%# Eval("EmpID") %>' />
</td>
<td>
<asp:Label ID="EmpNameLabel" runat="server" Text='<%# Eval("EmpName") %>' />
</td>
<td>
<asp:Label ID="DepartmentLabel" runat="server" Text='<%# Eval("Department") %>' />
</td>
<td>
<asp:Label ID="AgeLabel" runat="server" Text='<%# Eval("Age") %>' />
</td>
<td>
<asp:Label ID="AddressLabel" runat="server" Text='<%# Eval("Address") %>' />
</td>
</tr>
</ItemTemplate>
,我从数据库中检索的数据ASCX后面的代码波纹管:
public DataTable GetEmployee(string query)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString);
SqlDataAdapter ada = new SqlDataAdapter(query, con);
DataTable dtEmp = new DataTable();
ada.Fill(dtEmp);
return dtEmp;
}
,也是我绑定在ASCX代码背后的数据如下:
private void BindLVP(string SortExpression)
{
string UpdateQuery = "Select * from Employee" + SortExpression;
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString);
hid_UpdateQTP.Value = UpdateQuery;
lvProduct.Items.Clear();
lvProduct.DataSource = GetEmployee(UpdateQuery);
lvProduct.DataBind();
}
我的问题是我怎么能删除<%# Eval("EmpID") %>
和所有其他的标签文字像这在ItemTemplate中,并从后面的代码中更改ItemTemplate中的label.text,我的意思是将数据库的数据从后面的代码传递到这些标签。
感谢您的考虑。
答
您应该处理ItemDataBound事件是什么,每项引发的ListView控件的你已经绑定的ListView控件后,它的数据源:
protected void LVP_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
Label EmpIDLabel = (Label)e.Item.FindControl("EmpIDLabel");
System.Data.DataRowView rowView = e.Item.DataItem as System.Data.DataRowView;
EmpIDLabel.Text = rowView["EmpID"].ToString();
}
}
此事件不是每次回发触发,但只有在数据绑定(不像ListView的ItemCreated事件)。
看看http://stackoverflow.com/questions/8063311/how-to-set-label-text-inside-listview-from-code-behind – 2011-12-14 09:57:29