当我点击该行中的按钮时,我正在尝试使用gridview列中的数据填充单个文本框(或参数)。 Gridview从sqlconnection获取数据
gridview是
|绘图|
| 12345 | VIEW
| 12346 | VIEW
VIEW是一个带有onclick事件的模板按钮,当用户单击该按钮时,Drawing列(12345)中的数据应传递给以太文本框或参数。 (这是我不知道该怎么做的部分)一旦Iv得到一个文本框中的数字我可以用它作为pareameter然后打开那个绘图的pdf,我有代码并且正在工作。
感谢您的帮助
答案 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
}
}
}