2012-08-28 26 views
0

我是一個極端的初學者,也做沒有太大success--這個搜索的相當多,如果這甚至可能/是有道理的我不知道我我試圖創建一個工作板數據庫和網頁,並鏈接到各個作業頁面。在mySQL和ASP.net中有一個GridView,其中包含Job Title,Date和相關鏈接/頁面路徑,以及對作業的進一步描述。我想使用鏈接列中的相對路徑來鏈接工作職位(希望只是編寫腳本來生成完整的鏈接 - 對每行都不進行硬編碼)。當此頁面正在運行時,鏈接列很可能會被隱藏。這樣,如果有任何更改,用戶可以編輯鏈接列,而不必編輯太多的代碼(如果有的話)。超鏈接在MySQL數據庫與另一列的相對路徑值的列

[Job Title] [Date Posted]  [Link] 
Job 1   June, 2012   /california/job1.asp 
Job 2   August, 2012  /newyork/job2.asp 
etc.. 

我想顯示在瀏覽器中:

Job Title  Date Posted 
[Job 1][1]  June, 2012 
[Job 2][2]  August, 2012 

這裏的表的ASP代碼,我知道我需要的職位一個HyperLinkField字段或列有navigateurl。但不知道如何連接上面的兩個表格列。我想感謝所有幫助我能得到:)

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
     <h2> 
      Job Postings 
     </h2> 
     <p> 
      The following are the current open positions: 
     </p> 
     <p> 
      <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
       AllowSorting="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" 
       EmptyDataText="There are no data records to display." BackColor="White" 
       BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="4" 
       ForeColor="Black" GridLines="Horizontal"> 
       <Columns> 
        <asp:BoundField DataField="JobTitle" HeaderText="JobTitle" 
         SortExpression="JobTitle" /> 
        <asp:BoundField DataField="JobDatePosted" HeaderText="JobDatePosted" 
         SortExpression="JobDatePosted" DataFormatString="{0:d}" /> 
        <asp:BoundField DataField="JobLink" HeaderText="JobLink" 
         SortExpression="JobLink" /> 
       </Columns> 
       <FooterStyle BackColor="#CCCC99" ForeColor="Black" /> 
       <HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" /> 
       <PagerStyle BackColor="White" ForeColor="Black" HorizontalAlign="Right" /> 
       <SelectedRowStyle BackColor="#CC3333" Font-Bold="True" ForeColor="White" /> 
       <SortedAscendingCellStyle BackColor="#F7F7F7" /> 
       <SortedAscendingHeaderStyle BackColor="#4B4B4B" /> 
       <SortedDescendingCellStyle BackColor="#E5E5E5" /> 
       <SortedDescendingHeaderStyle BackColor="#242121" /> 
      </asp:GridView> 
      <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
       ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
       ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" 
       SelectCommand="SELECT [JobTitle], [JobDatePosted], [JobLink] FROM [jobpostings]"> 
      </asp:SqlDataSource> 
     </p> 
    </asp:Content> 

如果這是一個愚蠢的想法,請讓我知道這樣做的更好的辦法?

+0

歡迎StackOverflow上:如果您發佈的代碼,XML或數據樣本,** **請在高亮文本編輯器的線和編輯器工具欄上單擊「代碼示例」按鈕('{}')很好地格式和語法突出顯示它!這樣,你不再需要任何那些凌亂的' '或'
'標籤了! –

+0

非常感謝!我試圖讓鏈接顯示爲實際的鏈接,這樣它會更容易讓人們看到我想要的東西,這就是爲什麼我開始藉助醜陋的格式:) – Jonas

回答

0

最佳實踐是使用ItemTemplate中這樣的事情 添加超鏈接控制和set/edit/update值編程。添加editTemplate以進行編輯。

Design.aspx:(測試代碼)

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
      onrowdatabound="GridView1_RowDataBound" 
      onrowcancelingedit="GridView1_RowCancelingEdit" 
      onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating"> 
     <Columns> 
      <asp:TemplateField HeaderText="Id"> 
       <ItemTemplate> 
        <asp:Label ID="lblid" runat="server" Text='<%# Bind("id") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="JobTitle"> 
       <ItemTemplate> 
        <asp:HyperLink ID="jobTitle" Text='<%# Bind("JobTitle") %>' NavigateUrl='<%# Bind("JobLink") %>' runat="server"></asp:HyperLink> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Post Date"> 
       <ItemTemplate> 
        <asp:Label ID="lbldatepost" runat="server" Text='<%# Bind("JobDatePosted","{0:dd MMM yyyy}") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField > 
       <ItemTemplate> 
        <asp:Label ID="lblLink" runat="server" Text='<%# Bind("JobLink") %>'></asp:Label> 
       </ItemTemplate> 
       <EditItemTemplate> 
        <asp:TextBox ID="txtesetLink" runat="server" Text='<%# Bind("JobLink") %>'></asp:TextBox> 
       </EditItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField ShowHeader="False"> 
       <EditItemTemplate> 
        <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" 
         CommandName="Update" Text="Update"></asp:LinkButton> 
        &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" 
         CommandName="Cancel" Text="Cancel"></asp:LinkButton> 
       </EditItemTemplate> 
       <ItemTemplate> 
        <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" 
         CommandName="Edit" Text="Edit"></asp:LinkButton> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 

    </asp:GridView> 

代碼背後:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!Page.IsPostBack) 
     { 
      gvBind(); 
     } 
    } 
    public void gvBind() 
    { 
     SqlDataAdapter dap = new SqlDataAdapter("SELECT id, [JobTitle], [JobDatePosted], [JobLink] FROM [jobpostings]", con); 
     DataSet ds = new System.Data.DataSet(); 
     dap.Fill(ds); 
     GridView1.DataSource = ds.Tables[0]; 
     GridView1.DataBind(); 
    } 

    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
    { 
     GridView1.EditIndex = e.NewEditIndex; 
     gvBind(); 
    } 
    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) 
    { 
     GridView1.EditIndex = -1; 
     gvBind(); 
    } 
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
    { 
     TextBox txtlink = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtesetLink"); 
     Label lblid = (Label)GridView1.Rows[e.RowIndex].FindControl("lblid"); 

     int result = UpdateQuery(txtlink.Text, lblid.Text); 

     if (result > 0) 
     { 
      //lblmsg.text = "Record updated"; 
      Response.Write("Record updated"); 
     } 
     GridView1.EditIndex = -1; 
     gvBind(); 

    } 
    public int UpdateQuery(string setlink,string id) 
    { 
     SqlCommand cmd=new SqlCommand("update jobpostings set JobLink='"+setlink+"' where id='"+id+"'",con); 
     con.Open(); 
     int temp = cmd.ExecuteNonQuery(); 
     con.Close(); 
     return temp; 
    } 

注:希望它幾乎解決您的問題,讓我現在如果任何問題。

+0

謝謝!我看到在這種情況下使用模板域是多麼有用。但我仍然不確定如何在JobLink下將該網址應用於作業標題單元格。標題「職位名稱」下工作1本身應該是「求職通」的標題下/california/job1.asp值的鏈接.. – Jonas

+0

@Jonas:檢查我的編輯答案 –

相關問題