首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LinqDataSource_Selecting不工作

LinqDataSource_Selecting不工作
EN

Stack Overflow用户
提问于 2012-12-18 23:14:10
回答 1查看 104关注 0票数 0

我已经使用了一个网格视图和linqdatasourse,在点击一个搜索按钮后,网格视图将被一个linq存储过程填充。

我像下面这样做,但是我的网格视图是空的。

看起来LinqDataSource2_Selecting不能工作。

请帮帮忙,有什么问题?

代码语言:javascript
复制
public void LinqDataSource2_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
_DataContext = new EDMSDataContext();

 var subjectFilter = e.WhereParameters["Subject"];



var query = _DataContext.spQuickSearchDoc(subjectFilter);


e.Result = query;
}

protected void btnSearch_Click(object sender, EventArgs e)
{
    _DataContext = new EDMSDataContext();
    this.LinqDataSource2.WhereParameters["Subject"].DefaultValue =    this.txtSearchKeywords.Text;

    GridViewDocuments.Visible = false;
    GridViewDocuments_Search.Visible = true;
    this.GridViewDocuments_Search.DataBind();

}

存储过程:

代码语言:javascript
复制
 ALTER PROCEDURE [dbo].[spQuickSearchDoc]
 @Searchtext varchar(50)=null

AS

select DocId,DocumentNo,Title,Unit
from tblDocuments
where DocumentNo like '%'+@SearchText + '%'
or Title like '%'+@SearchText + '%'
or Unit like '%'+@SearchText + '%'

Gridview:

代码语言:javascript
复制
 <asp:GridView ID="GridViewDocuments_Search" runat="server" AutoGenerateColumns=False Visible="False" onrowcommand="GridViewDocuments_Search_RowCommand"  
  DataKeyNames="DocID" PageSize="100"  >
    <Columns>
    <asp:TemplateField HeaderText = "Details">
           <ItemTemplate>
      <asp:Button ID ="btn_Show" Text="Details" runat= "server" CommandName= "Details"  CommandArgument='<%#
        Container.DataItemIndex%>' />
        </ItemTemplate>
            </asp:TemplateField>

       <asp:BoundField DataField="DocumentNo" HeaderText="DocumentNo" SortExpression="DocumentNo" />
        <asp:BoundField DataField="title" HeaderText="Title" SortExpression="title" />

        <asp:BoundField DataField="Docid" HeaderText="Docid" Visible="false" />
        <asp:CommandField ShowEditButton="True" />
        <asp:CommandField ShowDeleteButton="True" />
    </Columns>
</asp:GridView>

<asp:LinqDataSource ID="LinqDataSource2" runat="server" 
          ContextTypeName="EDMSDataContext" OnSelecting="LinqDataSource2_Selecting">
          <WhereParameters>
    <asp:ControlParameter Name="Subject"
                          ControlID="txtSearchKeywords"
                          PropertyName="Text"
                          Type="String" />
</WhereParameters>
      </asp:LinqDataSource>
EN

回答 1

Stack Overflow用户

发布于 2012-12-18 23:28:49

您需要在GridView中添加DataSourceID,如下所示:

代码语言:javascript
复制
<asp:GridView ID="GridViewDocuments_Search" runat="server" 
   . .  DataSourceID="LinqDataSource2">

因为没有设置,所以GridView被绑定到NULL。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13935945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档