2013-03-18 64 views
0

我已經在我的asp.net頁面上放置了一個gridview,並使用sql調用來獲取數據源。在sql調用中,它爲所有字段(名稱,地址,電話,類型)帶來數據 在gridview上,有2個字段(phone,type)需要是模板字段而不是綁定字段,在編輯期間,和項目模板中的文本框或標籤(無論哪個)。Gridview模板字段數據源

當我運行代碼時,數據網格完成並填充 - 減去手機或類型字段(模板字段)的信息。 如何數據綁定字段,以便信息正確顯示。 我已經包含了我的代碼。

任何幫助將不勝感激。提前致謝!

GRIDVIEW:

<asp:GridView ID="gvMTM" runat="server" AllowPaging="True" DataKeyNames="MTMID" 
    AutoGenerateColumns="False" AutoGenerateEditButton="True" 
    OnRowEditing="gvMTM_RowEditing" 
    OnRowUpdating="gvMTM_UpdateRowEditing" 
    OnRowCancelingEdit="gvMTM_CancelRowEditing" > 
    <Columns> 
     <asp:BoundField DataField="MTMID" HeaderText="ID" /> 
     <asp:BoundField DataField="MTMName" HeaderText="Name" /> 
     <asp:BoundField DataField="Add1" HeaderText="Add1" /> 
     <asp:BoundField DataField="Add2" HeaderText="Add2" /> 
     <asp:BoundField DataField="City" HeaderText="City" /> 
     <asp:BoundField DataField="ST" HeaderText="ST" /> 
     <asp:BoundField DataField="Zip" HeaderText="Zip" /> 
     <asp:BoundField DataField="Email" HeaderText="Email" /> 
     <asp:TemplateField HeaderText="Phone#"> 
      <EditItemTemplate> 
       <asp:TextBox ID="txtPhoneEdit" runat="server"></asp:TextBox> 
       <asp:MaskedEditExtender ID="TemptxtPhone_MaskedEditExtender" runat="server" 
        CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" 
        CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" 
        CultureThousandsPlaceholder="" CultureTimePlaceholder="" Enabled="True" 
        TargetControlID="TemptxtPhone"> 
       </asp:MaskedEditExtender> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:TextBox ID="txtPhoneRead" runat="server" BorderStyle="None"></asp:TextBox> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="RR"> 
      <EditItemTemplate> 
       <asp:DropDownList ID="ddRREdit" runat="server" Height="16px" Width="100px" DataTextField="Railroad" DataValueField="RRID"> 
       </asp:DropDownList> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:TextBox ID="txtRRRead" runat="server" BorderStyle="None"></asp:TextBox> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

.CS頁:

 gvMTM.DataSource = code.GetMTMList(); 
      gvMTM.DataBind(); 

SQL調用

public DataTable GetMTMList() 
    { 
     try 
     { 
      SQLCON = new SqlConnection(connectionString); 
      SQLCON.Open(); 
      SQLCmd = new SqlCommand("spGetMTMList", SQLCON); 
      SQLCmd.CommandType = CommandType.StoredProcedure; 

      SqlDataAdapter adapter = new SqlDataAdapter(SQLCmd); 
      DataTable Detailtable = new DataTable(); 
      adapter.Fill(Detailtable); 

      return Detailtable; 

     } 
     catch (Exception ex) 
     { 
      HttpContext.Current.Response.Redirect("~/ErrorRedirect.aspx?" + ex.Message, false); 
      return null; 
     } 
     finally 
     { 
      SQLCON.Close(); 
     } 
    } 

回答

9

使用此:

Text='<%# Eval("phone") %>' 

你需要補充一點:

<ItemTemplate> 
     <asp:TextBox ID="txtPhoneRead" runat="server" Text='<%# Eval("phone") %>'> 
     </asp:TextBox> 
</ItemTemplate> 

的​​方法您的數據源中的數據綁定到Text財產

您可以在他post看看以瞭解更多信息

注意 考慮將<ItemTemplate>內的TextBox控件更改爲asp:Label

它應該看起來像這樣:

<ItemTemplate> 
     <asp:Label ID="txtPhoneRead" runat="server" Text='<%# Eval("Phone") %>'> 
     </asp:Label>    
</ItemTemplate> 
+0

那麼做了!非常感謝! – 2013-03-18 19:58:01

+0

我很高興它爲你工作!如果你喜歡,你可以投票。 – Silagy 2013-03-18 20:05:06