如何在运行时动态分发xap文件

时间:2011-07-29 10:42:06

标签: asp.net silverlight c#-4.0 silverlight-4.0

在我的应用程序中,我从某个信息中心下载了一些xml数据文件,将这个xml文件(在aspx.cs中)添加到带有图像的列中,并将所有内容一起传递给aspx文件中的GridView。

我想用xap文件做同样的事情 - 我需要根据数据上下文将它们添加到GridView,但不幸的是有一个问题 - 对象没有object.Attributes就像图像。

这是我添加图像的代码(gvCurrency是一个GridView):

for (int i = 0; i < currency.Count; i++)
{
  Image image = new Image();
  image.Attributes.Add("src", "Images/Currency/" + xdoc.GetElementsByTagName("CURRENCYCODE")[i].InnerText + ".gif");
  image.Attributes.Add("height", "15px");
  image.Attributes.Add("width", "21px");
  gvCurrency.Rows[i].Cells[0].Controls.Add(image);
}

我认为另一种可能性是绑定到aspx文件中相应xap文件的链接,在这种情况下应该是这样的(如果我没有错):

<asp:GridView ID="gvCurrency" runat="server"  AutoGenerateColumns="False" ...>
  <Columns>
    <asp:BoundField DataField="FLAG" />
    <asp:BoundField HeaderText="Currency Name" DataField="NAME" />
    ...
    <asp:TemplateField >
      <ItemTemplate>
        <div id="silverlightControlHost">
          <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="10px" height="10px">
          <param name="source" value="ClientBin/ArrowTriangle.xap"/>
          ...
        </div>
      </ItemTemplate>
    </asp:TemplateField >
  </Columns>
</asp:GridView>

所以,我的问题是:如何在运行时动态分配xap文件(在第一种情况下)以及如何将链接绑定到xap文件(在第二种情况下)?

感谢。

上面的代码的实现可以在这里看到:http://www.lzel.net/wf_Currency_ASP.aspx

1 个答案:

答案 0 :(得分:0)

您可以从服务器动态下载xap文件并将其放在表格的单元格中(在客户端渲染之后)通过javascript(jQuery最好)。