Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.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# 当单击linkbutton时,如果这两个控件都是gridview的子控件,如何隐藏textbox控件?_C#_Javascript_Asp.net - Fatal编程技术网

C# 当单击linkbutton时,如果这两个控件都是gridview的子控件,如何隐藏textbox控件?

C# 当单击linkbutton时,如果这两个控件都是gridview的子控件,如何隐藏textbox控件?,c#,javascript,asp.net,C#,Javascript,Asp.net,我有一个网格视图,如下所示 <asp:GridView ID="dgTask" runat="server" Width="100%" AutoGenerateColumns="False" onrowdatabound="dgTask_RowDataBound"> <Columns> <asp:BoundField DataField="TaskID" HeaderText="Tas

我有一个网格视图,如下所示

<asp:GridView ID="dgTask" runat="server" Width="100%" 
            AutoGenerateColumns="False" onrowdatabound="dgTask_RowDataBound">
            <Columns>
                <asp:BoundField DataField="TaskID" HeaderText="TaskID" ItemStyle-Width="1%" />
                <asp:BoundField DataField="TaskName" HeaderText="Task Name" ItemStyle-HorizontalAlign="left"
                    ItemStyle-Width="10%" />
                <asp:BoundField DataField="PriorityName" HeaderText="Priority" ItemStyle-HorizontalAlign="center"
                    ItemStyle-Width="10%" />
                <asp:BoundField DataField="StatusName" HeaderText="Status" ItemStyle-HorizontalAlign="center"
                    ItemStyle-Width="10%" />
                <asp:TemplateField HeaderText="Edit Task" ItemStyle-Width="10%">
                    <ItemTemplate>
                        <asp:LinkButton ID="lnkBtnEdit" runat="Server" Text="Edit" CommandArgument ='<%# Eval("TaskID") %>' /> 
                        <asp:TextBox ID="txtId" runat="server"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

谢谢

您的思路是正确的,只需在调用javascript函数时做一些小的更改,并添加javascript函数,如下所示

protected void dgTask_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            LinkButton btnEdit = (LinkButton)e.Row.Cells[4].FindControl("lnkBtnEdit");
            TextBox txtId = (TextBox)e.Row.Cells[4].FindControl("txtId");
            btnEdit.Attributes.Add("onclick", "return Test("'" + txtId.ClientId + "'");");
        }
    }
然后像这样添加Javascript

function Test(var txtId)
{
    var inputtxt = document.getElementById(txtId);
    if(inputtxt != null)
    {
        inputtxt.Attributes.Add("style","display:none;");
    }

}

您的思路是正确的,只需在调用javascript函数时做一些小的更改,并添加javascript函数,如下所示

protected void dgTask_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            LinkButton btnEdit = (LinkButton)e.Row.Cells[4].FindControl("lnkBtnEdit");
            TextBox txtId = (TextBox)e.Row.Cells[4].FindControl("txtId");
            btnEdit.Attributes.Add("onclick", "return Test("'" + txtId.ClientId + "'");");
        }
    }
然后像这样添加Javascript

function Test(var txtId)
{
    var inputtxt = document.getElementById(txtId);
    if(inputtxt != null)
    {
        inputtxt.Attributes.Add("style","display:none;");
    }

}
试试这个:

protected void LinkButton1_Click(object sender, EventArgs e)
    {
        LinkButton b = (LinkButton)sender;
        GridViewRow r = (GridViewRow)b.NamingContainer;
        ((TextBox)(GridView1.Rows[r.RowIndex].Cells[0].FindControl("TextBox1"))).Visible = false;
    }
试试这个:

protected void LinkButton1_Click(object sender, EventArgs e)
    {
        LinkButton b = (LinkButton)sender;
        GridViewRow r = (GridViewRow)b.NamingContainer;
        ((TextBox)(GridView1.Rows[r.RowIndex].Cells[0].FindControl("TextBox1"))).Visible = false;
    }