2013-11-14 3 views
0

Я пытаюсь заполнить одно текстовое поле (или параметр) данными из столбца gridview, когда я нажимаю кнопку в этой строке. Gridview получает его данные из SQLConnectionвыберите данные из поля gridview и заполните текстовое поле

GridView является

| Рисование |

| 12345 | Вид деятельности:

| 12346 | ПРОСМОТР

VIEW - это кнопка шаблона с событием onclick, когда пользователь нажимает кнопку, данные из столбца Drawing (12345) должны быть переданы в эфир текстовым полем или пареметром. (это часть, которую я не знаю, как это сделать), как только Iv получил номер в текстовом поле, я могу использовать его как pareameter, а затем открывается этот pdf-документ, у меня есть код для этого и работает.

спасибо за любую помощь

+0

Опубликуйте свою разметку «GridView» на странице .aspx. –

ответ

1

Если вы используете C#, проще всего было бы добавить i n-built кнопка выбора команды в строки gridview во время выполнения. Затем в выбранном событии с переменным событием gridview просто обращайтесь к ячейке выбранной строки, из которой вы хотите получить значение. Затем вы можете назначить эту строку для чего угодно. Как так:

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

Помните, что сбор индекс ячейки с нуля, так что [0] на самом деле первая ячейка в строке.

+0

ah, should of упомянутый Im using VB – Badvoc

+0

Привет, Ник, я взял ваше предложение и посмотрел код VB для SelectedIndexChanged на MSDN и с некоторым редактированием получил его на работу, спасибо .. – Badvoc

+0

Нет проблем. Другие предложения по использованию полей шаблонов также очень эффективны и особенно удобны, если вы хотите создать пользовательскую кнопку, а не использовать встроенные командные кнопки по умолчанию. Рад, что вы его отсортировали. – Nick

0

Использования TemplateField s и OnRowCommand события в виде сетки, как и это:

Markup:

<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> 

Code-за:

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 
     } 
    } 
} 
Смежные вопросы