我在asp.net页面上放置了一个gridview,并使用sql调用来获取数据源。在sql调用中,它带来了所有字段(名称,地址,电话,类型)的数据 在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>
<。>页面上的:
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();
}
}
答案 0 :(得分:10)
使用此:
Text='<%# Eval("phone") %>'
您需要添加以下内容:
<ItemTemplate>
<asp:TextBox ID="txtPhoneRead" runat="server" Text='<%# Eval("phone") %>'>
</asp:TextBox>
</ItemTemplate>
Eval()
方法将数据源中的数据绑定到Text
属性
您可以查看他的post了解更多信息
注意强>
考虑将TextBox
中的<ItemTemplate>
控件更改为asp:Label
它应该是这样的:
<ItemTemplate>
<asp:Label ID="txtPhoneRead" runat="server" Text='<%# Eval("Phone") %>'>
</asp:Label>
</ItemTemplate>