2012-02-07 70 views
0

我在我的数据库中有ID,NAME,CONTEXT字段的表。我在数据网格中显示搜索结果。现在我试图做到这一点如何在datagrid行详细信息中显示部分文本?

 <WpfToolkit:DataGrid.RowDetailsTemplate> 
      <DataTemplate> 
       **<StackPanel Orientation="Horizontal" Margin="5"> 
         <StackPanel Orientation="Vertical" Margin="5"> 
         <TextBlock Foreground="CadetBlue" FontSize="13" 
          Width="Auto" TextWrapping="Wrap" 
          Text="{Binding Path=Context}"/> 
        </StackPanel>** 
       </StackPanel> 
      </DataTemplate> 
     </WpfToolkit:DataGrid.RowDetailsTemplate> 

它给整个文本是不是我想要的。如果你给我一些指导如何做到这一点,可能是一些代码。将不胜感激。我只想显示由这行代码选择的那部分文本。

private void Find_Click(object sender, RoutedEventArgs e) 
     { 


      DataSet ds = new DataSet(); 
      cmdSel = new SqlCommand(); 
      cmdSel.Connection = MainWindow.conn; 

       cmdSel.CommandText = "select id,Name,Context from document where Contains([Context],'FormsOf (INFLECTIONAL, \"" + TextBoxSearch.Text + "\")')"; 

        da = new SqlDataAdapter(cmdSel); 
      da.Fill(ds, "MainSearchBinding"); 
      resWin.DataGrid1.DataContext = ds; 

        } 

例如,您正在搜索“audio”,它在+“audio”之前显示10个单词+音频之后的10个单词。预先感谢。

回答

0

我在表格中再添加一列“Intro”。

<WpfToolkit:DataGrid.RowDetailsTemplate> 

       <DataTemplate> 
       <StackPanel Orientation="Horizontal" Margin="5"> 
         <StackPanel Orientation="Vertical" Margin="5" > 
          <TextBlock Foreground="CadetBlue" FontSize="13" 
          Width="Auto" TextWrapping="Wrap" 
          Text="{Binding Path=Intro}"/> 

        </StackPanel> 
       </StackPanel> 
      </DataTemplate> 
     </WpfToolkit:DataGrid.RowDetailsTemplate> 

并写下这段代码点击鼠标。

private void OnMouseClick(object sender, MouseButtonEventArgs e) 
     { 

      IList rows = DataGrid1.SelectedItems; 
      DataRowView row = (DataRowView)DataGrid1.SelectedItems[0]; 
      int a = (int)row["ID"]; 
      string t = (string)row["Context"]; //getting all text from Context 
      string srch1 = UCSearch.srch; // search box text 

      if (t.IndexOf(srch1) != -1) 
      { 
       string retString = t.Substring(t.IndexOf(srch1), 100); //cutting from occured text and more 100 symbols 

       row["Intro"] = retString; // setting to Intro Column 

      } 


     } 

我希望有人可能需要它。谢谢。

相关问题