Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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# 将textbox的值传递给VS2013 ASPX C类#_C#_Asp.net_.net_Gridview - Fatal编程技术网

C# 将textbox的值传递给VS2013 ASPX C类#

C# 将textbox的值传递给VS2013 ASPX C类#,c#,asp.net,.net,gridview,C#,Asp.net,.net,Gridview,我有一个Gridview.aspx、Gridview.aspx.cs和GetData.cs(类) 在Gridview.aspx中,我有一个名为SearchData的文本框和一个名为SearchBtn 我在Gridview.aspx.cs>> protected void SearchBtn_Click(object sender, EventArgs e){ if (!IsPostBack){ Search_Grid(); } } void Search_Gri

我有一个Gridview.aspx、Gridview.aspx.cs和GetData.cs(类)

在Gridview.aspx中,我有一个名为SearchData的文本框和一个名为SearchBtn

我在Gridview.aspx.cs>>

protected void SearchBtn_Click(object sender, EventArgs e){
    if (!IsPostBack){
        Search_Grid();
    }
}

void Search_Grid(){ 
    DataGridView.DataSource = obj.Search_Data();
    DataGridView.DataBind();
}
由于这是我第一次使用类,下面是我在GetData.cs中的内容>>>

public DataTable Search_Data(){
    adap = new SqlDataAdapter("select * from MyTable " +
                                      "where MyID = '" + 
                                       value_of_my_SearchData_textbox + 
                                       "'", con);
    dt = new DataTable();
    adap.Fill(dt);
    return dt;
}
ASPX代码 GridView.aspx代码很长,但以下是GridView部分下的内容:

<table id="TBL_GridView" runat="server" align="center">
    <tr>
        <td  text-align:center">*** TEST ONLY ***</td>
    </tr>
    <tr>
        <td >  
            <asp:Label ID="Label1" runat="server" Text="Procedure name: "></asp:Label> &nbsp;
            <asp:TextBox ID="SearchData" runat="server"></asp:TextBox> &nbsp;
            <asp:Button ID="SearchBtn" runat="server" Text="Search" OnClick="SearchBtn_Click" /> 
        </td>
    </tr>
    <tr >
        <td >
            <asp:GridView ID="DataGridView" runat="server" AutoGenerateColumns="False" ShowFooter="True" 
                CellPadding="4" ForeColor="#333333" GridLines="None" Height="281px" style="margin-top: 0px" Width="1000px" 
                OnRowCancelingEdit="DataGridView_RowCancelingEdit"  
                OnRowEditing="DataGridView_RowEditing" HorizontalAlign="Center" >

                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />

                <Columns>

                    <asp:TemplateField>
                        <HeaderTemplate>Recipe Name</HeaderTemplate>
                        <ItemTemplate><asp:Label ID="recpname" runat="server" Text='<%# Bind("recpname")%>'></asp:Label></ItemTemplate>
                        <EditItemTemplate><asp:TextBox ID="recpname" runat="server"></asp:TextBox></EditItemTemplate>
                        <FooterTemplate><asp:TextBox ID="recpname" runat="server"></asp:TextBox></FooterTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField>
                        <HeaderTemplate>Standard Time</HeaderTemplate>
                        <ItemTemplate><asp:Label ID="stdtime" runat="server" Text='<%# Bind("stdtime")%>'></asp:Label></ItemTemplate>
                        <EditItemTemplate><asp:TextBox ID="stdtime" runat="server"></asp:TextBox></EditItemTemplate>
                        <FooterTemplate><asp:TextBox ID="stdtime" runat="server"></asp:TextBox></FooterTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField>
                        <HeaderTemplate>Operation</HeaderTemplate>
                        <ItemTemplate>
                            <asp:Button ID="BtnEdit" runat="server" Text="Edit" CommandName="Edit" Width="60px" />
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:Button ID="BtnUpdate" runat="server" Text="Update" CommandName="Update" Width="60px" />
                            <asp:Button ID="BtnCancle" runat="server" Text="Cancel" CommandName="Cancel" Width="60px" />
                        </EditItemTemplate>
                        <FooterTemplate>
                            <asp:Button ID="BtnInsert" runat="server" Text="Insert"  Width="60px" OnClick="BtnInsert_Click" />
                        </FooterTemplate>
                    </asp:TemplateField>

                </Columns>
            </asp:GridView>
            <br />
            <asp:Literal ID="Literal1" runat="server"></asp:Literal>
        </td>
    </tr>
</table>


我看到您的文本框SearchData只是gridview之外的普通文本框,而不是gridview中的文本框

您可以简单地使用:

SearchData.Text
更改方法以传递
SearchData.Text

protected void SearchBtn_Click(object sender, EventArgs e){
    if (!IsPostBack){
        Search_Grid(SearchData.Text);
    }
}

void Search_Grid(string searchValue){ 
    DataGridView.DataSource = obj.Search_Data(searchValue);
    DataGridView.DataBind();
}
最后使用它:

public DataTable Search_Data(string searchValue){
   adap = new SqlDataAdapter("select * from MyTable " +
                                  "where MyID = '" + 
                                   searchValue + 
                                   "'", con);
   dt = new DataTable();
   adap.Fill(dt);
   return dt;
}
但是,请注意,此代码容易受到SQL注入攻击,因为您正在内联添加值,因此攻击者可以添加
;从我的表中删除以擦除数据

您应该参数化您的查询

adap = new SqlDataAdapter("select * from MyTable where MyID = @myIdValue", con);

请添加GridView(.aspx)代码。Hi@Sunil请参见下面的GridView注释。aspx代码编辑问题并添加到此处。不要添加答案。这只会让你落选。我现在已经为您添加了内容,因此您可以继续并删除您的答案。1)
SearchBtn_单击
是一个
Postback
2)如果我需要添加一些内容,它会给我一个错误:名称“SearchData”在当前上下文更新中不存在。您需要将SearchData.Text从UI向下传递到方法。谢谢!gridview怎么样?如何刷新它?它不显示数据。您不需要它
!IsPostBack
条件,因为一旦单击按钮,它将始终是回发,但结果不会反映在我的gridview上。所以,我试着测试按钮是否工作。在我的页面加载中,我最初显示了我的gridview,现在我创建了一个新按钮,只需将代码从页面加载移动到我的按钮。没有显示任何内容。