ASP.Net C#如何在Listview中查找控件

时间:2017-09-25 03:06:06

标签: c# asp.net listview

我想在listview的选定行中找到一个控件,我可以这样做:

lv_ListviewTest.Items(lv_ListviewTest.SelectedIndex).FindControl("ControlName")

我拥有的是:

if (e.CommandName == "Select")
        {
            var ctrl = (HtmlContainerControl)e.Item.FindControl("area");
            ctrl.Attributes["style"] = "background-color:LightSkyBlue; color:Black; padding:0px;";

        }

我可以在Itemcommand上执行此操作,但我不知道在页面重新加载时如何触发itemcommand。

我想要做的是:当点击按钮(而不是列表视图上的按钮)时,页面重新加载并且焦点将停留在列表视图的按钮上。

非常感谢。

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

在按钮中单击“外部按钮的事件”,添加以下代码

 protected void MyButton_Click(object sender, EventArgs e)
    {
        foreach (ListViewItem  item in MyListView.Items)
                {

                    var ctrl = (HtmlContainerControl)item.FindControl("area");
                    ctrl.Attributes["style"] = "background-color:LightSkyBlue; color:Black; padding:0px;";


                }
    }

答案 2 :(得分:0)

哦,我发现我可以使用SelectedIndex和Session变量来存储它:

选择项目时:

protected void lv_ListviewTest_SelectedIndexChanged(object sender, EventArgs e)
    {
        Session["SelectedIndex"] = lv_ListviewTest.SelectedIndex;
    }

点击其他按钮时:

protected void cmd_OtherButton_Click(object sender, EventArgs e)
    {
        ...............
        Button focusbutton = (Button)lv_ListviewTest.Items[Convert.ToInt16(Session["SelectedIndex"])].FindControl("MyControlLabel");
        focusbutton.Focus();
    }

所以我可以让我的列表视图显示我之前选择的内容,如确保可见。