我正在从Web服务中检索一组值并使用这些值填充dataList -
ActiveDataList.DataSource = ws.TermsReturnActive(sql);
ActiveDataList.DataBind();
如何根据值隐藏dataList的特定列, 例如
if(value == 1)
{
//Hide Column
}
然而,此操作必须与其并行隐藏另一个dataList的同一行。 我可以通过从第一个数据列中检索值来修改第二个dataList上的单元格 -
TextBox tb1 = (TextBox)sender;
DataListItem item1 = (DataListItem)tb1.NamingContainer;
TextBox txt1 = (TextBox)tData.Items[item1.ItemIndex].FindControl("tTextBox");
string term = txt1.Text;
因此,如果我可以从单独的dataList行中检索值,我想我也可以调整其可见性。
如何在页面加载中完成Web服务调用,以便在绑定dataList项时必须完成此操作?
答案 0 :(得分:1)
如果我是对的,你应该在你的aspx文件中有这样的东西吗?:
<asp:DataList ID="DataList1" runat="server" OnItemDataBound="DataList1_ItemDataBound"></asp:DataList>
如您所见,您应该添加一个“OnItemDataBound”事件,您可以根据需要检查您的值并隐藏项目。
所以你可以这样反应并隐藏一些物品:
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item)
{
TextBox tbCurrentTextBox = (TextBox)e.Item.FindControl("tTextBox");
if (DataList1.Items[e.Item.ItemIndex].ToString() == "1")
{
e.Item.Visible = false;
}
}
}