1

我需要一些帮助。

在我的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

请帮助我,我在这个学术项目中遇到了很大的麻烦。:'(

4

2 回答 2

0
Try this 

For TextBox Control

Textbox EditTextBox = (TextBox)gvDiscussItem.FindControl("tbEditDI");

For Label Control

Label EditTextBox = (Label)gvDiscussItem.FindControl("lblDI");
于 2012-07-28T17:37:16.863 回答
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 />");
      }

    }
}
于 2012-07-13T12:02:00.467 回答