Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 禁用从另一个gridview中的select填充的gridview中的按钮_C#_Asp.net_Gridview - Fatal编程技术网

C# 禁用从另一个gridview中的select填充的gridview中的按钮

C# 禁用从另一个gridview中的select填充的gridview中的按钮,c#,asp.net,gridview,C#,Asp.net,Gridview,下面是一个场景。我有两种观点。 例如,Gridview 1就是这样 __________________________________ | select | cell 2 | cell 3 | 然后,当您单击单元格1中的“选择”时,它将填充Gridview 2 _______________________________ | cell 1 | cell 2 | BUTTON | 当第二个gridview加载时,如果单元格2中的值为真,我将尝试禁用按钮 我

下面是一个场景。我有两种观点。 例如,Gridview 1就是这样

 __________________________________
| select | cell 2 | cell 3         |
然后,当您单击单元格1中的“选择”时,它将填充Gridview 2

  _______________________________
 | cell 1 | cell 2 | BUTTON      |
当第二个gridview加载时,如果单元格2中的值为真,我将尝试禁用按钮

我已尝试使用rowdatabound事件禁用该按钮。 抓取具有以下内容的单元格文本信息

在aspx页面上

<asp:GridView ID="GridView10" runat="server" AutoGenerateColumns="False" 
                Font-Size="10px" CellPadding="2" 
                DataKeyNames="ID" DataSourceID="SqlDataSource35" Width="100%" 
                BorderColor="#CCCCCC" OnRowCommand="GridView10_RowCommand" 
                onrowdatabound="GridView10_RowDataBound"

正常情况下,这只会让人感觉很爽。但无论出于何种原因,在这种情况下,事件似乎并未发生。有人了解这个问题吗?

你确定你有正确的Gridview单元格吗? 您可能使用了错误的单元格ID,其中

protected void GridView10_RowDataBound(object sender, GridViewRowEventArgs e)
{
    string cellt = e.Row.Cells[CORRECT CELL?].Text;

     if (cellt == "True")
    {
        Button btn = (Button)e.Row.Cells[CORRECT CELL?].Controls[1];
        btn.Enabled = false;
    }
}
如果这是正确的单元格,则只需更改“可见性”属性即可

Buttonname.visible=false

而且, 你可以这样做

protected void GridView10_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        string cellt = e.Row.Cells[CORRECT CELL?].Tostring;
         if (cellt != "True") continue;
        {
            Button btn = (Button)e.Row.Cells[CORRECT CELL?].Controls[1];
            buttonname.visible = false;
            break;
        }
    }
记住GridView从单元格0开始

因此,如果您将其作为单元格6,请确保您从单元格0开始-因此单元格6可能是单元格5


编辑,我注意到您询问某个单元格是否有特定文本,请使用上面显示的.Tostring。

那么您是说您显示的RowDataBound事件根本不会触发?该事件是在标记中以反向方式附加到GridView的,还是在代码隐藏中以编程方式附加到GridView的?您可以使用templatefield并在按钮上设置Enabled=根据您在onrowdatabound中复制的代码判断intellisense没有拾取。。。。可以很容易地将外壳固定到OnRowDataBound@urbanlemur奇怪的是,尽管实际控件属性是区分大小写的,但这些事件委托属性并不区分大小写。urbanlemur:Good eye man。这就成功了+1给你。
protected void GridView10_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        string cellt = e.Row.Cells[CORRECT CELL?].Tostring;
         if (cellt != "True") continue;
        {
            Button btn = (Button)e.Row.Cells[CORRECT CELL?].Controls[1];
            buttonname.visible = false;
            break;
        }
    }