从gridview字段中选择数据并填充文本框

时间:2013-11-14 16:40:48

标签: asp.net

当我点击该行中的按钮时,我正在尝试使用gridview列中的数据填充单个文本框(或参数)。 Gridview从sqlconnection获取数据

gridview是

|绘图|

| 12345 | VIEW

| 12346 | VIEW

VIEW是一个带有onclick事件的模板按钮,当用户单击该按钮时,Drawing列(12345)中的数据应传递给以太文本框或参数。 (这是我不知道该怎么做的部分)一旦Iv得到一个文本框中的数字我可以用它作为pareameter然后打开那个绘图的pdf,我有代码并且正在工作。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

如果您使用的是C#,最简单的方法是在运行时向gridview行添加一个内置的select命令按钮。然后在gridview的selectedindexchanged事件上,只需访问您想要该值的所选行的单元格。然后,您可以将该字符串分配给任何您想要的。像这样:

protected void myGridView_SelectedIndexChanged(object sender, EventArgs e)
    {
        string myString = myGridView.SelectedRow.Cells[4].Text.ToString();
        TextBox1.Text = myString;
    }

请记住,单元格索引集合是基于零的,因此[0]实际上是行中的第一个单元格。

答案 1 :(得分:0)

使用TemplateField和网格视图的OnRowCommand事件,如下所示:

标记:

<asp:gridview id="GridView1" 
              OnRowCommand="GridView1_RowCommand"
              runat="server">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="TextBoxDrawing" runat="server" 
                             Text="<%# Eval("Drawing")) %>" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Button ID="selc" runat="server" Text="View" 
                    CommandName="View" 
                    CommandArgument="<%# ((GridViewRow)Container).RowIndex %> />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

代码隐藏:

protected void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
{
    // If multiple buttons are used in a GridView control, use the
    // CommandName property to determine which button was clicked
    if(e.CommandName == "View")
    {
        // Convert the row index stored in the CommandArgument
        // property to an integer
        var index = Convert.ToInt32(e.CommandArgument);

        // Retrieve the row that contains the button clicked 
        // by the user from the Rows collection      
        var row = GridView1.Rows[index];

        // Find the drawing value
        var theDrawingTextBox = row.FindControl("TextBoxDrawing") as TextBox;

        // Verify the text box exists before we try to use it
        if(theDrawingTextBox != null)
        {
            var theDrawingValue = theDrawingTextBox.Text;

            // Do something here with drawing value
        }
    }
}