2012-02-07 100 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 

      } 


     } 

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

相關問題