Извините, если заголовок сообщения не был ясен, я постараюсь объяснить здесь немного лучше.Возможно ли изменение содержимого данных на лету?
Я работаю с веб-элементом управления, который привязывается к таблице данных. Выход данных как таковой:
<asp:Repeater ID="RssRepeater" Visible="false" EnableViewState="false" runat="server">
<asp:literal ID="sb_description" Text='<%# DataBinder.Eval (Container.DataItem, "description") %>' EnableViewState="false" runat="server" />
''// Rest of structure...
</asp:Repeater>
Я написал функцию, которая, по идее, должен обрезать переданную строку заданного количества слов:
protected string CreateTeaser(string Post)
{
int wordLimit = 50;
System.Text.StringBuilder oSB = new System.Text.StringBuilder();
string[] splitBy = new string[] { " " };
string[] splitPost = Post.Split(splitBy,
System.StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i <= wordLimit - 1; i++)
{
oSB.Append(string.Format("{0}{1}", splitPost[i],
(i < wordLimit - 1) ? " " : ""));
}
oSB.Append(" ...");
return oSB.ToString();
}
Я попробовал эту мерзость:
<asp:literal ID="sb_description" Text='<%= CreateTeaser(%> <%# DataBinder.Eval (Container.DataItem, "description") %><%=); %>' EnableViewState="false" runat="server" />
Но, конечно, это не сработало. Итак, можно ли использовать эту функцию на Databinder.Eval(...)
, пока она находится внутри этого литерального элемента управления? Если да, то как я должен это делать? Если нет, то какая из возможных альтернатив тому, что я пытаюсь сделать?
Спасибо!
спасибо, это достало меня на правильном пути :) – Anders