我需要一些帮助。
在我的gridview(绑定到SQLDataSource)中,项目模板中的标签(lblDI)和编辑项模板中的文本框(tbEditDI)
<asp:GridView ID="gvDiscussItem" runat="server" AutoGenerateColumns="False" BackColor="White" BorderColor="Black" BorderStyle="Double" BorderWidth="1px"
CellPadding="2" DataKeyNames="discussionID" DataSourceID="SQLDiscussItems"
ForeColor="Black" ShowHeaderWhenEmpty="True"
style="font-size: small" Width="600px" >
<Columns>
<ItemTemplate>
<asp:Label ID="lblDI" runat="server" Text='<%# Bind("discussionItem") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="tbEditDI" runat="server" Text='<%# Bind("discussionItem") %>'
TextMode="MultiLine" onkeyup="SettingEditHeightDI(this);"></asp:TextBox>
</EditItemTemplate>
</asp:GridView>
如何使标签(lblDI)成为多行显示数据,文本框(tbEditDI)适合页面加载的所有文本?
我有这些代码,我可以用来作为参考帮我制作标签多线,文本框适合页面大小的尺寸,但它现在不起作用,至于标签,我无法得到控制要在aspx.cs页面中使用的标签,以及控制文本框以通过javascript自动调整大小。
// to auto resize the textbox on pageload automatically using javascript
document.getElementById("<%=tbAgenda.ClientID%>").style.height = document.getElementById("<%=tbAgenda.ClientID%>").scrollHeight + "px";
和
// to display multiline label in the aspx.cs page
lblAgenda.Text = recentMinute.Agenda.Replace("\n", "<br/>"); // displays multilines textbox texts in a multiline label. For retrieval from database
请帮助我,我在这个学术项目中遇到了很大麻烦。 :'(
答案 0 :(得分:0)
您可以在gridview的RowDataBound事件上添加此服务器端代码。类似的东西:
public void gvDiscussItem_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
// find your control...
var lblDI = e.Row.FindControl("lblDI") as Label;
if (lblDI != null)
{
//fill the label and add the break-lines.
lblDI.Text = DataBinder.Eval(Container.DataItem, "discussionItem").ToString().Replace("\n","<br />");
}
}
}
答案 1 :(得分:0)
Try this
For TextBox Control
Textbox EditTextBox = (TextBox)gvDiscussItem.FindControl("tbEditDI");
For Label Control
Label EditTextBox = (Label)gvDiscussItem.FindControl("lblDI");