根据Web服务的值隐藏DataList行

时间:2013-02-20 13:59:00

标签: c# asp.net web-services

我正在从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项时必须完成此操作?

1 个答案:

答案 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;
           }
       }
   }