Как отобразить несколько строк текста вдляуправление в ASP.Net? - PullRequest
0 голосов
/ 16 мая 2019

У меня есть следующий GridView, определенный на странице ASP.Net:

<asp:GridView ID="gv1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
  <Columns>
    <asp:BoundField DataField="Station" HeaderText="Station" HeaderStyle-Width="10%" SortExpression="Station" />
    <asp:BoundField DataField="Item1" HeaderText="Main Pos. at Station" HeaderStyle-Width="10%" SortExpression="Item1" />
    <asp:BoundField DataField="Max1" HeaderText="Max1" SortExpression="Max1" HeaderStyle-Width="5%" />
  </Columns>
 </asp:GridView>

Источник данных определяется следующим образом:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:AppDBConnection %>"
  SelectCommand="SELECT [Station], [Item1], [Max1], FROM [tblSomeTable]">
</asp:SqlDataSource>

Поля Item1 и Max1 содержат разделенные запятыми списки, такие как:

Item1="N100,N200,N300,N400"
Max1="70,80,90,100"

Проблема заключается в том, что я хотел бы иметь возможность разделять запятые списки на список отдельных элементов и отображать их в BoundField, чтобы каждая запись находилась на отдельной строке.

Item1   Max1
N100    70
N200    80
N300    90
N400    100

Каков наилучший способ сделать это, чтобы я мог гарантировать, что каждый элемент отображается на отдельной строке в ячейке сетки?

Должен ли я заменить запятые (,) пробелами и использовать хранимую процедуру, а не встроенный SQL. (Я не смог заставить функцию Replace () работать во встроенном SQL).

Я пытался включить перенос слов в столбце, но, похоже, это не сработало.

Каков наилучший способ достичь этого?

Спасибо, Johnb

1 Ответ

0 голосов
/ 16 мая 2019

редактировать Я думаю, что этот код должен вам немного помочь: вы должны извлечь свои результаты в строку и разбить их, чтобы создать таблицу данных. и тогда вы можете связать свой gridview.

Dim itemResult As String 
'Query your database to add results from column Item in that string'

Dim max1Result As String 
'Query your database to add results from column Max1 in that string'


'Splitting the Strings'
Dim items as String = output.Split(New Char() {","c})
Dim max as String = output.Split(New Char() {","c})

'Adding the splitted string to Datatable'
Dim table As New System.Data.DataTable()
plt.Columns.Add("Item1")
plt.Columns.Add("Max1")

Dim newRow As DataRow 

for index As Int32 = 0 To items.Length -1
    newRow = new DataRow(items[index], max[index])
    table.Rows.Add(newRow)
Next

'Binding the gridView'
gv1.dataSource=table
gv1.DataBind()

Оригинал

Вы можете попытаться создать хранимую процедуру для извлечения данных из вашей базы данных и заполнить GridView из кода, подобного следующему:

Private Sub BindGridView()
    gv1.dataSource = yourStoredProcedure
    gv1.DataBind()
End Sub

этот метод вызывается всякий раз, когда вы хотите заполнить GridView

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...