asp: LinqDataSource DataTable - PullRequest
       5

asp: LinqDataSource DataTable

1 голос
/ 08 сентября 2011

У меня есть DataTable, который я заполняю вручную, то есть

newrow = dt.NewRow();
dt.Rows.Add(newrow);

, и я пытаюсь воспользоваться groupby функциями LinqDataSource (, как показано Мэттом )связав LinqDataSource с DataTable, но этого просто не происходит.

Кто-нибудь имеет опыт с этим?

 <%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    public class MyData
    {
        public MyData(){}

        private DataTable dt = new DataTable("dt");
        public DataTable MyTable
        {
            get { return dt; }
            set { dt = value; }
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        MyData mydata = new MyData();
        mydata.MyTable.Columns.Add("column1");
        DataRow dr = mydata.MyTable.NewRow();
        dr[0] = "some data";
        mydata.MyTable.Rows.Add(dr);
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:LinqDataSource 
            ID="LinqDataSource1" 
            runat="server"
            ContextTypeName="MyData" 
            TableName="MyTable">
        </asp:LinqDataSource>

        <asp:GridView ID="GridView1" runat="server" DataSourceID="LinqDataSource1">
        </asp:GridView>
    </form>
</body>
</html>

Ответы [ 2 ]

1 голос
/ 08 сентября 2011

Нет, это просто не будет работать вообще.Свойство ContextTypeName должно соответствовать контексту, подобному DataContext LinqtoSql, а TableName - это имя таблицы базы данных, которая отображается в вашем файле DBML LinqToSql.Пробовали ли вы на самом деле следовать статье, на которую вы ссылаетесь, так как она дает довольно хороший обзор работы LinqToSQL.

1 голос
/ 08 сентября 2011

"dt" - это не имя таблицы, попробуйте это

DataTable dt = new DataTable("dt");

и затем попытайтесь это назвать таблицу как "dt".

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