2014-12-17 2 views
0

Я следую gridview, и мне нужно получить значение из текстового поля в поле шаблона «VyskaStavky» после того, как я нажму кнопку. Пожалуйста, может кто-нибудь сказать мне, как я могу это сделать? Я пробовал что-то вроде этого CommandArgument = '<% # Eval ("Id") + "," + Eval ("VyskaStavky")%>' , но у меня проблема, потому что VyskaStavky не является собственностью класса Kurz (мое название из DataSourceID является имя класса + D от данных и S от источника)Как получить значение из текстового поля в поле шаблона в gridview после нажатия кнопки?

<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataSourceID="KurzDS" DataKeyNames="Id" OnRowCommand="GridView1_RowCommand"> 
     <Columns> 
      <asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" ReadOnly="True" Visible="False" /> 
      <asp:BoundField DataField="Zapas" HeaderText="Zapas" SortExpression="Zapas" ReadOnly="True" Visible="False" /> 
      <asp:BoundField DataField="AktKurz" HeaderText="AktKurz" SortExpression="AktKurz" /> 
      <asp:BoundField DataField="Tip" HeaderText="Tip" SortExpression="Tip" /> 
      <asp:BoundField DataField="Handicap" HeaderText="Handicap" SortExpression="Handicap" /> 
    <asp:TemplateField> 
     <ItemTemplate> 
      <asp:TextBox ID="VyskaStavky" runat="server" Text=""></asp:TextBox> 
     </ItemTemplate> 
     </asp:TemplateField> 
      <asp:TemplateField> 
      <ItemTemplate> 
       <asp:Button ID="Button1" Text='Podat stavku' CommandArgument='<%# Eval("Id")%>' CommandName="PodatStavku" runat="server" CausesValidation="false" /> 
      </ItemTemplate> 
    </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 

Thanx много

ответ

1

Я решить мою проблему. Я изменил Templete кнопки (от команды к OnClick)

  <ItemTemplate> 
       <asp:Button ID="Button1" Text='Podat stavku' OnClick="Button1_Click" runat="server" CausesValidation="false" /> 
      </ItemTemplate> 

и в C# я получил значение от

protected void Button1_Click(object sender, EventArgs e) 
    { 
     Button btn = sender as Button; 
     GridViewRow row = btn.NamingContainer as GridViewRow; 
     string pk = GridView2.DataKeys[row.RowIndex].Values["Id"].ToString(); 
     TextBox ss = GridView2.Rows[row.RowIndex].Cells[3].FindControl("VyskaStavky") as TextBox; 
     //ss.text have my requested value 
    } 
Смежные вопросы