2014-02-05 3 views
0

У меня возникли проблемы с установкой значения HiddenField на значение элемента GridView. То, что я хочу сделать, это получить значение BoundField (в данном случае, «FIPSCountyCode») в GridView и сохранить его в HiddenField, когда пользователь нажимает кнопку (в данном случае «btnEdit»), чтобы вносить изменения в запись в сетке. Раньше я не использовал HiddenFields, поэтому я забыл, что делать здесь.Сохранение значения BoundField в HiddenField на кнопке Нажмите

скрытое является установка так:

<asp:HiddenField ID="hdnFIPS" Value='<%#Eval("FIPSCountyCode")%>' runat="server" /> 

Это то, что GridView настроен как:

<asp:GridView ID="CountyList" runat="server" AutoGenerateColumns="False" Width="90%" SkinId="PagedList" PagerSettings-Position="TopAndBottom" PagerStyle-Wrap="True">    
    <Columns> 
     <asp:BoundField HeaderText="County Code" DataField="FIPSCountyCode" /> 
     <asp:BoundField HeaderText="State Code" DataField="StateCode" /> 
     <asp:BoundField HeaderText="County Name" DataField="CountyName" /> 
     <asp:BoundField HeaderText="Tax Rate" DataField="TaxRate" /> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:ImageButton ID="btnEdit" runat="server" SkinID="EditIcon" OnClick="EditInfo" CommandName="DoEdit" /> 
       <asp:ImageButton ID="DeleteButton" runat="server" SkinID="DeleteIcon" CommandName="DoDelete" 
           OnClientClick="return confirm('Are you sure you want to remove this item and all of its options?')" 
           CausesValidation="false" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
    <AlternatingRowStyle CssClass="even" /> 
</asp:GridView> 

И это код позади:

public partial class Admin_County_Info : CommerceBuilder.UI.AbleCommerceAdminPage 
{ 
    private string redirectString = String.Empty; 

    protected void Page_Load(object sender, System.EventArgs e) 
    { 
     if (!Page.IsPostBack) 
      PopulateCountyGrid(); 
    } 

    protected void PopulateCountyGrid() 
    { 
     try 
     { 
      System.Data.SqlClient.SqlDataReader dr = null; 
      using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["AbleCommerce"].ToString())) 
      { 
       SqlCommand cmd = new SqlCommand("SELECT [FIPSCountyCode], [StateCode], [CountyName], [TaxRate] FROM [baird_InfoCounty]", cn); 
       cmd.CommandType = CommandType.Text; 
       cn.Open(); 
       dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 
       CountyList.DataSource = dr; 
       CountyList.DataBind(); 
      } 
     } 
     catch (Exception eX) 
     { 

     } 
    } 

    #region Clicks and Event Handlers 

    protected void EditInfo(object sender, System.EventArgs e) 
    { 
     if (Page.IsValid) 
     { 

      redirectString = "~/Admin/Taxes/AddEditCountyInfo.aspx?FIPSCountyCode=" + hdnFIPS.Value; 
      Response.Redirect(redirectString); 
     } 

    } 

    protected void AddInfo(object sender, System.EventArgs e) 
    { 
     if (Page.IsValid) 
     { 

      Response.Redirect("~/Admin/Taxes/AddEditCountyInfo.aspx"); 
     } 

    } 
} 

Это необходимо быть действительно глупым вопросом, но я действительно не уверен, как действовать дальше. Любая помощь будет замечательной!

+0

является 'hdnFIPS' вне' CountyList'? – ekad

+0

Да, это за пределами CountryList. –

ответ

1

Вы можете получить значение FIPSCountyCode из BoundField так:

protected void EditInfo(object sender, System.EventArgs e) 
{ 
    if (Page.IsValid) 
    { 
     GridViewRow gvr = ((ImageButton)sender).NamingContainer as GridViewRow; 
     hdnFIPS.Value = gvr.Cells[0].Text; 

     redirectString = "~/Admin/Taxes/AddEditCountyInfo.aspx?FIPSCountyCode=" + hdnFIPS.Value; 
     Response.Redirect(redirectString); 
    } 
} 
+0

Это сработало для меня! Благодаря :) –

Смежные вопросы