0

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

网格视图是

| 绘图 |

| 12345 | 看法

| 12346 | 看法

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

谢谢你的帮助

4

2 回答 2

2

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

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

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

于 2013-11-14T17:34:15.130 回答
0

使用TemplateFields 和网格视图的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
        }
    }
}
于 2013-11-14T17:01:17.117 回答