我在模板列中已经绑定了字段,如下所示:
<asp:TemplateField HeaderText="发货单号">
<ItemTemplate>
<a onclick="GetProductlist();"><%# DataBinder.Eval(Container.DataItem,"DONo") %></a>
</ItemTemplate>
</asp:TemplateField>但由于模板列没有DataField属性,所以,当我编辑时,该列不能和指定的列进行绑定。造成我传递列属性时根本没有办法传过去。想问问高手们如何处理这个问题,有没有比较简单的设置方法?
<asp:TemplateField HeaderText="发货单号">
<ItemTemplate>
<a onclick="GetProductlist();"><%# DataBinder.Eval(Container.DataItem,"DONo") %></a>
</ItemTemplate>
</asp:TemplateField>但由于模板列没有DataField属性,所以,当我编辑时,该列不能和指定的列进行绑定。造成我传递列属性时根本没有办法传过去。想问问高手们如何处理这个问题,有没有比较简单的设置方法?
itemstyle-verticalalign="Top">
<itemtemplate>
<%#Eval("au_lname")%>
</itemtemplate>
<edititemtemplate>
<asp:textbox id="LastNameTextBox"
text='<%#Eval("au_lname")%>'
width="90"
runat="server"/>
<br/>
<asp:requiredfieldvalidator id="LastNameRequiredValidator"
controltovalidate="LastNameTextBox"
display="Dynamic"
text="Please enter a last name."
runat="server" />
</edititemtemplate>
</asp:templatefield>
<ItemTemplate>
<a onclick="javascript:window.open('A.aspx?DONO=<%# DataBinder.Eval(Container.DataItem,"DONo") %>');"> <%# DataBinder.Eval(Container.DataItem,"DONo") %> </a>
</ItemTemplate>
</asp:TemplateField>
要传值的地方 引用<%# Eval("")%> 这个就可以
<EditItemTemplate>
<asp:DropDownList ID="dpManifest" runat="server" DataTextField="Name" DataValueField="Code" DataSource="<%# ManifestDataSource %>">
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblManifest" runat="server" Text='<%# GetNameFromCode("Manifest",DataBinder.Eval(Container.DataItem,"ManifestCode").ToString()) %>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>结果我在Edit时候,这里面的值根本不能取出来。而其它所有BindColumn都没有问题,我查了一下,BindColumn都有DataField与之对应,系统可以知道现在GRID中编辑的是哪个字段。但模板列怎么处理呢?
<itemtemplate>
<asp:label id="lblSubPod" runat="server" text='<%# Eval("SubPodName") %>' />
</itemtemplate>
<edititemtemplate>
<asp:dropdownlist id="ddlSubPod" runat="server" appenddatabounditems="true" datatextfield="SubPodName"
datavaluefield="SubPodID" selectedvalue='<%# Bind("SubPodID" %>' style="width: 130px;
font-size: 7pt;" />
</edititemtemplate>
</asp:templatefield>
{
string sql="select port form tb_port";
SqlDataAdapter sda= new SqlDataAdapter(sql,conn);
DataSet myds = new DataSet();
sda.Fill(myds,"Rus_Port");
int c = myds.Tables["Rus_Port"].Rows.Count; if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DropDownList ddlport = (DropDownList)e.Item.FindControl("ddl_port");
ddlport.DataSource = myds.Tables["Rus_Port"].DefaultView;
ddlport.DataBind();
}
}
在后台绑定吧.
<asp:TextBox ID="TextBox1" runat="server" ></asp:TextBox>
</EditTemplate>
就行了。